java - 获取 java.net.SocketTimeoutException : connect timed out error

标签 java apache-axis

我正在尝试从我的应用程序连接到 Web 服务,但遇到以下异常:

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 中配置的,但我可能是错的

最佳答案

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

准确地说,在 org.apache.axis2.client.Options 第 118 行(axis2 版本 1.7.4):

public static final int DEFAULT_TIMEOUT_MILLISECONDS = 30 * 1000;

如果未手动设置超时,则将使用此默认值,并且其默认值为 -1(例如第 504 行)。

    return timeOutInMilliSeconds == -1 ? DEFAULT_TIMEOUT_MILLISECONDS
            : timeOutInMilliSeconds;

如果您想覆盖超时,我会建议您引用 axis documentation

关于java - 获取 java.net.SocketTimeoutException : connect timed out error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42224356/

相关文章:

java 树查看器添加元素

Java Web 服务框架

java - 在每 4 个字符处拆分一个字符串?

java - 如何使用java进行Web服务负载测试?

java - CXF 与 WebSphere JRE 之间的不兼容性

java - Axis Web 服务挂起,因为未返回连接关闭

修改测试代码的Java工具

java - 用于线程安全的 volatile 关键字

eclipse - 使用wsdl和axis2生成ws客户端

web-services - Apache axis 报错找不到services.xml