Java クライアントからリモート Tomcat サーバーを呼び出そうとしていますが、断続的に SocketTimeoutException: connection time out が発生します。( http://docs.oracle.com/javase/7/docs/api/java/net/SocketTimeoutException.html )
ここにスタックトレースがあります
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:365)
at java.net.Socket.connect(Socket.java:527)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:570)
at org.apache.commons.httpclient.contrib.ssl.EasySSLProtocolSocketFactory.createSocket(EasySSLProtocolSocketFactory.java:189)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:706)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:386)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
一貫性がありません。コードが複数回接続を試行すると消えます。
私はsocketTimeoutが何を意味するかを理解しています。私は読み取りタイムアウトを取得していませんが、接続タイムアウトを取得しています。これは、クライアントがサーバーとのtcp接続のセットアップに失敗したことを意味します。そのポートの何か他のもの。サーバーが到達可能で稼働中であることはわかっています。
サーバーへの接続が拒否されているようですが、その理由を知りたいですか? どうすれば始められますか? 何を探すべきですか?私のサーバーは、EC2 インスタンスで実行されている redhat linux ボックスで実行されています。接続が拒否されている理由を確認する方法はありますか?