当我在JBoss配置文件的/ lib中放入某些jar集时,我的应用程序可以使用http客户端(commons-httpclient-3.1)连接到后端服务器,但是当我放入同一组jar时在应用程序库(web-inf / lib)中,应用程序抛出空指针异常。要求是将这些罐子放在Web-Inf / lib中。这套罐子是:
对于故障情形,堆栈跟踪如下:
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)
请帮助我们解决此问题。 的问候,
答案 0 :(得分:0)
我不确定这是否是您遇到的唯一问题,但确保库bcprov-jdk14-130.jar
和bctsp-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而不是应用程序库来解决问题。