私は、Apache CXFを使用してAxis2 Webサービスと通信するアプリケーションを持っています。ソケットが閉じられ、weblogicにデプロイされたAxis2 Webサービスに接続しようとしています
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:466)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:299)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:251)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:75)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
at $Proxy131.retrieveAccountSummary(Unknown Source)
.
.
.
Caused by: java.net.SocketException: Socket Closed
at java.net.PlainSocketImpl.setOption(PlainSocketImpl.java:201)
at java.net.Socket.setTcpNoDelay(Socket.java:850)
at weblogic.net.http.HttpClient.openServer(HttpClient.java:326)
at weblogic.net.http.HttpClient.openServer(HttpClient.java:411)
at weblogic.net.http.HttpClient.New(HttpClient.java:241)
at weblogic.net.http.HttpURLConnection.connect(HttpURLConnection.java:176)
at weblogic.net.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:242)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1836)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1794)
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42)
at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:70)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1854)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:595)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 40 more
限り、私は、ネットワーク上の何も接続を終了していない、と言われた、と私はからのConnectionTimeoutとRecievingTimeoutを増加させたとして:テスト環境ですべてが、次の例外が発生した本番環境への移行、スムーズに行ってきましたcxf設定は使用できません。
両方のアプリケーションが異なるサーバー上のweblogic 10.3.2.0にデプロイされているため、どこに問題があるのかに関するガイダンスが必要ですか?ソケットが閉じられる原因は何ですか?私はこの問題に関係していないことを調べることは望まない。
おかげで、(のConnectionTimeoutとRecievingTimeoutの増加は助けにはならなかった)とtelnetが細かい上に働いた:次のように私はoverride the service addressに持っていたこの問題を解決するために今すぐ
同じポート。 私は、テスト環境と本番環境で同じバージョンのCXFとweblogicを使用しています。 実際にCXFバージョンを提案してアップグレードした同じリンクを見つけました。テスト環境では動作し続けましたが、CXFはlocalhostに配置されているかのようにWSDLの場所を読み取るようになりました(つまり、 ')だから、私はCXF 2.1.3に復帰しました。 –
@Ahmad:通常、5秒はweblogicが他のサーバに全く接続できないことを示しています。 https urlがあるか 'setConnectionTimeout(0);'を試してください。これはタイムアウトが全くないことを意味します。また 'setMaxRetransmits'を3にしようとすると – JoseK
、実際にはsetMaxRetransmitsは3に設定されます:) あなたが参照したリンクのように、CXFバージョンのアップグレードを続けます。以前は、CXF jarファイルをアップグレードして、欠落している依存関係を追加しました。次の例外が発生しました: 'のSocketExceptionは、httpを呼び出す:// localhostを:7001/QARの%20WS /サービス/ RetSrvc /:私は、次のWSDLの場所を'提供するため、有線であるソケットClosed' http://10.20.11.2:7001/ QAR%20WS/services/RetSrvc?wsdl'は異なるマシンのIPです。 今回は、正しいバージョンのCXF依存関係を使用していることを確認します。 –