JBOSS类加载问题

时间:2012-11-06 12:42:11

标签: java axis2 jboss5.x axis

当我在JBoss配置文件的/ lib中放入某些jar集时,我的应用程序可以使用http客户端(commons-httpclient-3.1)连接到后端服务器,但是当我放入同一组jar时在应用程序库(web-inf / lib)中,应用程序抛出空指针异常。要求是将这些罐子放在Web-Inf / lib中。这套罐子是:

  1. 公理-API-1.2.7.jar
  2. 公理-IMPL-1.2.7.jar
  3. 的axis2-内核1.4.1.jar
  4. bcmail-jdk14-130.jar
  5. bcprov-jdk14-130.jar
  6. bctsp-jdk14-130.jar
  7. 公地HttpClient的-3.1.jar
  8. 对于故障情形,堆栈跟踪如下:

    Caused by: java.lang.NullPointerException
        at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:721)
        at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
        at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:542)
        at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:189)
        at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
        at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:371)
        at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:209)
        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448)
        at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:401)
        at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
        at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
    

    请帮助我们解决此问题。 的问候,

2 个答案:

答案 0 :(得分:0)

我不确定这是否是您遇到的唯一问题,但确保库bcprov-jdk14-130.jarbctsp-jdk14-130.jar无法在java 1.4上运行。您需要使用java 1.5兼容版本;点击此处查看下载内容:http://www.bouncycastle.org/latest_releases.html

来自httpclient广告

的NPE会引入此代码
socket.setTcpNoDelay(this.params.getTcpNoDelay());

我认为问题是socket是null(这可能是使用错误版本的充气城堡的结果)。从我记忆中,但我可能错了,http客户端确保在HttpConnectionParams中设置所有必需的参数,所以我不认为this.params.getTcpNoDelay()正在抛出NPE。

我建议您设置IDE以在这种情况下进行远程调试。我相信你会发现它非常有用。

答案 1 :(得分:0)

将axis2 jar放入JBoss配置文件lib后,NPE问题得以解决。罐子兼容性存在一些问题,并且存在重复的罐子,但是无法弄明白。

无论如何,通过使用JBoss配置文件lib而不是应用程序库来解决问题。