2017-02-14 465 views
1

我想从我的应用程序连接到互联网服务和我得到以下异常:获取java.net.SocketTimeoutException:连接超时错误

org.apache.axis2.AxisFault: The host did not accept the connection within timeout of 30000 ms 
       at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) 
       at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:197) 
       at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75) 
       at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:404) 
       at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:231) 
       at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443) 
       at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406) 
       at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) 
       at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) 

Caused by: org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 30000 ms 
       at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:155) 
       at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:130) 
       at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707) 
       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.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:621) 
       at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:193) 
       ... 27 more 
Caused by: java.net.SocketTimeoutException: connect timed out 
       at java.net.PlainSocketImpl.socketConnect(Native Method) 
       at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) 
       at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) 
       at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) 
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:367) 
       at java.net.Socket.connect(Socket.java:524) 
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:545) 
       at sun.reflect.GeneratedMethodAccessor197.invoke(Unknown Source) 
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
       at java.lang.reflect.Method.invoke(Method.java:592) 
       at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:140) 
       ... 35 more 

我不覆盖超时时间间隔在我的应用程序。 任何人都可以告诉我通过哪个属性配置这个超时,并在哪个地方配置它?我认为它在axis2.xml中配置但我可能是错误的

+0

这可能听起来很明显,但你要连接的网络服务器,以实际可用?你没有在网址中输入任何错字?你有没有使用正确的端口?因为,至少对我来说,连接超时最常见的问题总是其中之一^^ –

+1

@FlorianSchöffl我的问题不同且简单。如果你看到堆栈跟踪,它说当前超时已被设置为“30000”。我只是想知道它在哪个地方配置 – Rehman

+0

啊该死的,我总误读。是的,您正在查找实际上在axis2.xml中的CONNECTION_TIMEOUT参数。 –

回答

1

我不确定你答应了什么,但默认超时30秒是在axis2的源代码中设置的。

被精确地在org.apache.axis2.client.Options上线118(的axis2版本1.7.4):

public static final int DEFAULT_TIMEOUT_MILLISECONDS = 30 * 1000; 

如果timout没有手动设定此默认值将被使用并且其默认值为-1(例如第504行)。

return timeOutInMilliSeconds == -1 ? DEFAULT_TIMEOUT_MILLISECONDS 
      : timeOutInMilliSeconds; 

如果你想覆盖超时我会向您推荐的axis documentation

+1

谢谢巴迪..这就是我想知道的 – Rehman

相关问题