[英]SOAP Request with HTTP Client with client certification connection timed out Exception
[英]Soap Connection timed out in Java client but not in SOAPUI
我用wsimport
和给定的wsdl创建了一个肥皂客户端。 我还使用了SoapUI来测试服务。 使用SoapUI我没问题,但是当我使用Java客户端时,
java.net.ConnectException: Connection timed out: connect
我在requestContext
中拥有的默认值如下
com.sun.xml.internal.ws.connect.timeout=100000
javax.xml.ws.service.endpoint.address=[fully qualified domain name endpoint]
com.sun.xml.internal.ws.request.timeout=100000
javax.xml.ws.soap.http.soapaction.use=null
com.sun.xml.internal.ws.client.ContentNegotiation=none
javax.xml.ws.soap.http.soapaction.uri=null
我尝试增加超时时间,但仍然无法连接。
还有其他人有类似的问题吗?
问题是我在代理后面。 我进行了不同的测试,发现使用Web浏览器(或SoapUI)可以访问该资源,但无法从命令行访问该资源。
经过大量搜索之后,这是一个简单的解决方案:将属性作为jvm参数传递,或者使用System.setProperty("java.net.useSystemProxies", "true")
在代码中手动设置。 JVM并不是单独使用代理。
编辑
当我使用wsimport
我有一个jax-ws客户端。 在实例化之前配置代理设置很重要。
另一个编辑
如果您偶然遇到问题,并且正在使用应用程序服务器通过代理发出Soap请求,则可能必须在服务器的配置中指定java.net.useSystemProxies=true
(或类似值),例如catalina .properties(如果使用tomcat)。
正如您提到的问题是代理,以下链接已回答该问题。
如果您将代理服务器与身份验证一起使用,则必须将身份验证器与代理服务器一起设置。 在这里回答。
编辑:
正如威廉·伯纳姆(William Burnham)正确提到的那样,您已经设置了要在调用属性之前设置的属性。 此外,我建议您在使用System.clearProperty(key)获得响应后立即清除该属性,因为该属性是为jvm的完整实例设置的,直到重新启动它为止,因此可能导致其他传出连接出现问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.