小编mar*_*ami的帖子

防止tomcat 7在我的webapp的每次覆盖/取消部署时删除我的自定义上下文文件

我在tomcat 7上部署了一个Web应用程序.它的上下文文件名为myAppName.xml位于 $CATALINA_HOME/conf/Catalina/localhost folder.

我面临的问题是每次覆盖或取消部署时,我的配置文件都从$CATALINA_HOME/conf/Catalina/localhost文件夹中删除,我必须复制/粘贴它从备份位置.

我该如何防止这种行为?每次我在webapp中更改内容时,我都不想复制/粘贴上下文文件.

java deployment datasource tomcat7

14
推荐指数
1
解决办法
3075
查看次数

编写jax-ws Web服务并生成不带XSD的WSDL

我在java上为tomcat应用服务器编写了一个简单的JAX-WS Web服务.

我有一个接口和实现类:
接口

@WebService(name = "myWs")
@SOAPBinding(style = Style.RPC)
public interface IMyWs {
    @WebMethod(operationName = "getUser")
    Response getUser(@WebParam(name = "phone", mode = Mode.IN) String phone);

}
Run Code Online (Sandbox Code Playgroud)


履行

@WebService(endpointInterface = "ge.mari.IMyWs")
public class MyWs implements IMyWs {
    @Override
    public Response getUser(String phone) {
               // SOME CODE
        return response;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,在我的wsdl文件中,Response类是在xsd文件中定义的.
这是我的wsdl文件的片段

<types>
<xsd:schema>
          <xsd:import namespace="http://ws.mari.ge/" schemaLocation="http://localhost:8080/MyServcie/MyWs?xsd=1">
</xsd:import>
</xsd:schema>
</types>
Run Code Online (Sandbox Code Playgroud)

如何使Web服务生成WSDL文件中的所有类型而不是单独的XSD文件?
我应该更改任何配置或添加一些注释到我的Web服务?

java tomcat wsdl web-services jax-ws

11
推荐指数
2
解决办法
2万
查看次数

在Oracle数据库中存储重复的时间段

我正在编写监控软件,其中大部分逻辑都在Oracle databasen和pl/sql中.

当我的监控被调用时,它应该警告问题.例如,它应警告问题,如果
1.在星期五22:00至23:00每小时
运行少于2次操作.在1月31日的每分钟运行少于5次. 22:00-23:00
3.从10:00到12:00,每天每分钟操作不到3次如果我的监控在1月31日22:30召唤,我应该将我的操作号码与5.
4.如果操作少于5次,则每分钟从星期五22:00到星期一15:00



我在考虑用数据库中的cron表达式格式保存数据周期.在这种情况下,我必须将SYSDATE(监视函数的当前调用日期)与保存在数据库中的cron表达式进行比较.

我的问题:
1.如何判断SYSDATE是否属于cron表达式?
2.在这种情况下使用cron表达式是否正确?你能否建议任何其他节省时间的方法.

oracle time monitoring plsql cronexpression

9
推荐指数
1
解决办法
1063
查看次数

Angular JS SPA使用LDAP身份验证

我正在写一个AngularJS SPA应用程序,它调用Rest完整的Web服务.后端正在编写JAX-RS,部署在上面Tomcat 7.我使用的是HTTPS, SSL从数据传输SPAJAX-RS

要求

  1. 我必须进行LDAP身份验证.(我会将用户名和密码发送到Web服务,它应该进行身份验证)
  2. 我必须进行用户的会话管理(因为,当经过身份验证的用户向Web服务发送请求时,用户不必再次进行身份验证)

问题

  1. 我认为进行LDAP身份验证有两种选择:

  2. 管理用户会话.一旦用户通过身份验证,就应将其保存在某处,以便用户可以在其登录未到期之前执行操作.我该怎么做?


我应该选择哪种方式?我该如何进行LDAP身份验证会话管理


任何人都可以提供任何建议示例链接吗?

ldap jax-rs spring-security angularjs single-page-application

8
推荐指数
1
解决办法
1万
查看次数

为移动和Web应用程序设计通用服务器端

我有一个项目,我应该开发一个移动应用程序(android)和一个网站.由于它们都具有相同的数据库/内容和功能,我想为移动和Web应用程序编写通用服务器端.

现在我有两个选择:

  1. 我的Android应用程序和网站(HTML/Javascript)将与之通信的服务器端开发RESTful Web服务.我认为这不适合网站开发,因为您在页面加载时使用javascript填充所有HTML组件值.

  2. 使用MVC框架(例如CodeIgniter)开发Web应用程序,其中每个页面将具有两个视图:
    a)用于Web站点的公共HTML/CSS/Javascript页面
    b)用于移动应用程序的JSON数据.在这种情况下,移动应用程序将对URL进行HTTP GET调用:www.mySite/someParameters,它将响应JSON数据.

哪一个更好选择?
或者,您还有其他建议吗?

architecture web-applications server-side software-design mobile-application

7
推荐指数
1
解决办法
3792
查看次数

SQL解析导致Oracle延迟响应

我有一个Java Web服务方法getCardInformation,可Oracle使用从数据库获取数据JDBC。每秒大约进行300个呼叫。

Java将其称为pl / sql函数:

PROCEDURE GET_CARDS_BY_ID(p_card_id IN NUMBER
                         ,o_result  OUT VARCHAR2) IS
BEGIN

  SELECT 'some data'
    INTO o_result
    FROM 'my complicated SQL' c
   WHERE c.card_id = p_card_id;

END GET_CARDS_BY_ID;
Run Code Online (Sandbox Code Playgroud)

通常SQL Select statement/procedure在30毫秒内返回结果,但有时有时需要20秒钟以上,而所有其他线程(调用)都在等待此延迟的调用。尽管这些调用没有相互连接,但是它们在SQL Select statement不同的输入参数下运行相同。所有参数都是使用Java从Java设置的bind variables

在延迟期间,我们选择了活动会话并获得了很多游标:引脚S等待X

    SELECT DISTINCT a.*, s.*
  FROM V$ACTIVE_SESSION_HISTORY a
      ,v$sql                    s
 WHERE a.sql_id = s.sql_id
   AND blocking_session IS NOT NULL
   AND a.sample_time > sysdate - 1
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我们通过添加hint到中解决了该问题Select。我们认为,在此延迟期间,Oracle试图对此进行解析Select …

sql oracle performance plsql query-optimization

7
推荐指数
0
解决办法
176
查看次数

传递String值时,JAX-WS方法的Decimal字段为NULL

我有Jaxws Soap网络服务.我的"myMethod"方法有一个十进制类型字段.

这是我的Web服务界面:

@WebService(name = "myWs", targetNamespace = "someNamespace")
@Local 
public interface myWsPortType {     
    @WebMethod  
    @RequestWrapper(localName = "myMethod", className = "com.example.MyMethodRequest")  
    public Result myMethod(@WebParam(name = "parameters", mode = Mode.IN) MyMethodParameters parameters); 
}
Run Code Online (Sandbox Code Playgroud)

这是参数类

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType()
public class MyMethodParameters implements java.io.Serializable {
    @FieldValidation(maxLength = 12)
    @XmlElement(name = "myField", required = false)
    private java.math.BigDecimal myField;
}
Run Code Online (Sandbox Code Playgroud)

当我在myField中传递正确的数据类型时,一切正常.

但是,问题是当我调用myMethod并传递String值(而不是Decimal)作为参数时,不会抛出异常并且myField的值为null

这是Soap Request示例

<soapenv:Envelope>
   <soapenv:Header/>
   <soapenv:Body>
      <iss:myMethod>
         <parameters>
            <myField>test</myField>
         </parameters>
      </iss:myMethod>
   </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

当传递不正确的数据类型时,如何让我的w抛出异常?

java soap decimal jax-ws bigdecimal

5
推荐指数
0
解决办法
730
查看次数

我在哪里可以保存java代码中使用的私钥

我正在开发Java,Spring,JDBC上的Web应用程序,它部署在Tomcat 7上.我正在使用私钥对数据源密码进行加密/解密.

现在我将这个私钥用Java代码硬编码.但我必须将私钥保存在更安全的地方.我怎样才能做到这一点?

生成证书(密钥库,密钥对),在tomcat上安装并从java代码中检索这些数据是一个好主意吗?

java datasource certificate keystore private-key

5
推荐指数
0
解决办法
1044
查看次数

在数据库中存储合规性的条件逻辑

我正在创建广告系统,应该在ATM上显示.目前,我必须建立一个数据库结构,用于存储广告,ATM和客户合规性.

广告系统必须根据ATM和客户选择广告.

关键是客户没有严格定义.它可以使用其任何属性(卡号,帐户,客户端ID,客户端年龄等)进行过滤.例如:

  1. 在ATM = 1 ADV = 2时,如果客户卡是'1111%',则应显示
  2. 在(1,2)中的ClientID时,应显示ATM = 1 ADV = 3以外的所有ATM


如何将这些数据存储在关系数据库中?

我有一个解决方案,但我不喜欢它,我会创建一个表,SQL将保存原因.例如:

广告表
Adv_ID
Terminal_ID
状态(值可以是:允许/拒绝)
规则(这里将写入SQL过滤器,例如:"卡像'1111%'和client_id!= 10230")
screen_id(必须在哪个页面上显示此adv )订单(优先级)

你有什么其他的建议?

database oracle database-design ads data-structures

5
推荐指数
1
解决办法
290
查看次数

修复太多打开的文件异常(我正在使用try-catch-finally)

我有在JAVA(版本1.8)上编写的Web服务,它连接HSM并通过套接字发送/接收数据.我的应用程序部署在Apache Tomcat/8.5.14上面linux.

虽然我正在关闭套接字连接,但我有

java.net.SocketException:打开的文件太多

这是myclass

public class myClass implements AutoCloseable {
    Socket socket;
    DataInputStream in;
    DataOutputStream out;

    public myClass(String ip, int port) throws Exception {
        try {
            socket = new Socket(ip, port);
            in = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
            out = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));
        } catch (IOException e) {
            throw new Exception("Connecting to HSM failed" + e);
        }
    }       

   public String sendCommandToHsm(String command) throws IOException {
        out.writeUTF(command);
        out.flush();
        return in.readUTF();
    }

    @Override
    public void close() {
        if (socket …
Run Code Online (Sandbox Code Playgroud)

java sockets linux connection-pooling exception

5
推荐指数
0
解决办法
730
查看次数

设计Oracle数据库上的作业监视

我有几个Oracle数据库,我的内部应用程序正在运行.这些应用程序使用dba_jobsdba_scheduler_jobs.

我想编写监控功能:check_my_jobsNagios会定期调用它来检查我的工作是否一切正常.(它们正在运行吗?它是否已损坏?next_run_date是否已延迟?依此类推)

解决方案:由于我必须监视不同数据库上的作业,因此有两种实现解决方案的方法:

  1. 仅在一个数据库上创建监视功能和配置表,该数据库将使用数据库链接检查每个数据库上的作业.

    优点:集中功能,易于维护.
    缺点:我必须使用数据库链接进行检查.

  2. 在我想要检查作业的每个数据库上创建监视功能和配置表.

    专业人士:我不必使用数据库链接
    缺点:每个数据库上都有重复的监控代码

哪种解决方案更好?

oracle jobs monitoring database-design database-link

5
推荐指数
0
解决办法
381
查看次数

团队的集中本地Maven存储库

我们的开发人员团队使用Maven来构建软件。我们的计算机上有Maven本地存储库。问题在于,有时由两个不同的开发人员进行的构建会有所不同,因为构建的软件包包括所包含依赖项的不同版本。

如果在POM.xml文件中未提及版本标签以获取依赖项,则会发生这种情况。例如:

<dependency>
            <groupId>mylib-group</groupId>
            <artifactId>mylib-artifact</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,Maven将获取本地安装的最新库。

为避免此问题,我们将Maven安装在一台计算机(我们称为Build服务器)上,我们团队的所有成员都在该计算机上进行构建。

对于这种情况有更好的解决方案吗?

我怎样才能在本地集中Maven?

java local repository maven-3 maven

5
推荐指数
0
解决办法
64
查看次数

Oracle 中的 UTF-8 字符

我想使用 INSERT 语句在 Oracle 12 数据库中插入 UTF-8 字符。我正在使用 PL/SQL Developer Tool(版本 8)。

\n\n

当我运行此 INSERT 语句时

\n\n
INSERT INTO my_table (my_column) VALUES ('\xe1\x83\xa2\xe1\x83\x94\xe1\x83\xa5\xe1\x83\xa1\xe1\x83\xa2\xe1\x83\x98');\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后运行 ​​SELECT 语句

\n\n
SELECT my_column FROM my_table\n
Run Code Online (Sandbox Code Playgroud)\n\n

它返回问号

\n\n
??????\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,当我将 UTF-8 文本手动(使用复制和粘贴)插入表中,然后运行相同的 SELECT 语句时,它会正确返回数据

\n\n
\xe1\x83\xa2\xe1\x83\x94\xe1\x83\xa1\xe1\x83\xa5\xe1\x83\xa2\xe1\x83\x98\n
Run Code Online (Sandbox Code Playgroud)\n\n

在使用 insert 语句插入 UTF-8 字符之前我应该​​运行任何命令吗?

\n

oracle encoding plsql utf-8 plsqldeveloper

2
推荐指数
1
解决办法
5392
查看次数