永続的なタイムアウトの問題の解決
温馨提示:
本文最后更新于 2024年04月12日,已超过 48 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
現在、JBoss + Java 7 で実行されている古いプロジェクトの問題に対処しています。そこで WSDL ファイルを介した呼び出しを使用していますが、リモート サービスが利用できない場合、非常に長いタイムアウト (約 1 分) が発生します。 。プロパティを追加してこれを変更しようとしましたが、このタイムアウトに追加したプロパティはどれも応答しないようです。
次のエラーが発生します:
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:625)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:933)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1092)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)
at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:288)
私のコード(プロジェクトの機密性のためにわずかに変更されました):
import javax.xml.ws.BindingProvider;
MyRemoteService port = svcService.getBasicHttpEndpoint();
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put("com.sun.xml.ws.connect.timeout", 3000);
bp.getRequestContext().put("com.sun.xml.ws.request.timeout", 5000);
ここで推奨されている他のプロパティのセットも試しました。
bp.getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 3000);
bp.getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 5000);
または
bp.getRequestContext().put("javax.xml.ws.client.connectionTimeout", 3000);
bp.getRequestContext().put("javax.xml.ws.client.receiveTimeout", 5000);
どれもうまくいきませんでした。システムプロパティの設定も試してみましたが、やはりダメでした。
sun.net.client.defaultConnectTimeout=3000
sun.net.client.defaultReadTimeout=10000
このタイムアウトを機能させるためにどのように設定すればよいかについて、さらにアドバイスはありますか?手伝ってくれてありがとう
正文到此结束
- 本文标签: 家庭宠物
- 本文链接: https://www.coder6.net/article/2508
- 版权声明: 本文由蚂蚁原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
-
浏览(193) 评论(0)