1

特定の jar のセットを JBoss プロファイルの /lib に配置すると、アプリケーションは http クライアント (commons-httpclient-3.1) を使用してバックエンド サーバーに接続できますが、アプリケーションに同じ jar のセットを配置するとライブラリ (web-inf/lib) の場合、アプリケーションは null ポインター例外をスローしています。要件は、これらの jar を Web-Inf/lib に配置することです。jar のセットは次のとおりです。

  1. axiom-api-1.2.7.jar
  2. axiom-impl-1.2.7.jar
  3. axis2-kernel-1.4.1.jar
  4. bcmail-jdk14-130.jar
  5. bcprov-jdk14-130.jar
  6. bctsp-jdk14-130.jar
  7. commons-httpclient-3.1.jar

障害シナリオのスタック トレースは次のとおりです。

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)

この問題を解決する方法を教えてください。よろしく、

4

2 に答える 2

0

これが唯一の問題かどうかはわかりませんが、ライブラリが Java 1.4 で動作しないbcprov-jdk14-130.jarことは確かです。bctsp-jdk14-130.jarJava 1.5 互換バージョンを使用する必要があります。ダウンロードについては、こちらをご覧ください: http://www.bouncycastle.org/latest_releases.html .

NPE はhttpclient、adからこのコードでスローされます

socket.setTcpNoDelay(this.params.getTcpNoDelay());

そして、問題はソケットがnullであることだと思います(これは、間違ったバージョンのバウンシーキャッスルを使用した結果である可能性があります)。this.params.getTcpNoDelay()私が覚えていることから、間違っているかもしれませんが、http クライアントは、必要なすべてのパラメーターが HttpConnectionParams に設定されていることを保証するため、NPE をスローしているとは思いません。

このような場合は、リモート デバッグを行うように IDE をセットアップすることをお勧めします。とても便利だと思います。

于 2012-11-06T14:08:06.867 に答える
0

axis2 jar を JBoss プロファイル ライブラリに配置すると、NPE の問題は解決されます。jar の互換性と重複した jar の存在には明らかにいくつかの問題がありますが、それを理解することはできませんでした。

とにかく、この問題は、アプリケーション ライブラリの代わりに JBoss プロファイル ライブラリを使用することで解決されます。

于 2013-10-28T10:00:14.647 に答える