ssl - 尝试从 JAX-WS 调用 asmx https Web 服务时连接超时

标签 ssl jax-ws webservice-client

我正在尝试调用端点超出 https 的外部网络服务。

我们正在尝试使用 JAX-WS(Java EE 6 中的 Oracle 标准实现)进行调用。

从 SoapUI 设置代理后它工作正常,但从我们的代码中我们得到这个堆栈跟踪:

[11/13/12 12:46:55:389 CET] 00000024 SystemErr R javax.xml.ws.WebServiceException: java.net.ConnectException: Connection timed out: no further information
[11/13/12 12:46:55:405 CET] 00000024 SystemErr R at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:175)
[11/13/12 12:46:55:405 CET] 00000024 SystemErr R at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70)
[11/13/12 12:46:55:405 CET] 00000024 SystemErr R at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:128)
[11/13/12 12:46:55:405 CET] 00000024 SystemErr R at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.execute(AxisInvocationController.java:586)
[11/13/12 12:46:55:405 CET] 00000024 SystemErr R at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.doInvoke(AxisInvocationController.java:130)
[11/13/12 12:46:55:405 CET] 00000024 SystemErr R at org.apache.axis2.jaxws.core.controller.impl.InvocationControllerImpl.invoke(InvocationControllerImpl.java:93)
[11/13/12 12:46:55:405 CET] 00000024 SystemErr R at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:364)
[11/13/12 12:46:55:405 CET] 00000024 SystemErr R at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:185)

我们不知道为什么会出现连接超时,因为从 SoapUI 来看一切正常...

这是我们使用的代码:

ResultBlock rb = null;
Matching stub=new Matching();
MatchingSoap soapPort = stub.getMatchingSoap();
BindingProvider provider = (BindingProvider) soapPort;
Map<String, Object> context = provider.getRequestContext();
if(!"".equals("cvsa"))//Conf.getPROXY_URL()
{
    System.getProperties().get("http.proxyPort");
    //Authenticator.setDefault(new ProxyAuthenticator("user", "password")); 
    System.getProperties().put("proxySet", "true");
    System.setProperty("http.proxyHost", "proxy.xxxxx.xxxx.xx"); 
    System.setProperty("http.proxyPort", "3128"); 
}
context.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "https://xxx.xxx.xxx.xxx/OnlineMatchingCore/OnlineMatching.asmx" );
//context.put(JAXWSProperties.HTTP_CLIENT_STREAMING_CHUNK_SIZE, 8192);
System.out.println(provider.getEndpointReference().toString());
// Authenticator.setDefault(new ProxyAuthenticator("USER", "PASSWORD"));


// Security.setProperty("ssl.SocketFactory.provider", "com.ibm.jsse2.SSLSocketFactoryImpl");
// Security.setProperty("ssl.ServerSocketFactory.provider", "com.ibm.jsse2.SSLServerSocketFactoryImpl");

String result = soapPort.match(controlXml, batchXml, "USER", "PASSWORD");

我在网上看到了很多关于此类问题的帖子,但我找不到任何解决方案:

我不知道该尝试什么,我的想法是我遗漏了一些关于告诉 java Web 服务在 https 上的信息...

最佳答案

您是否尝试设置 https 代理,而不是 http 代理?

System.setProperty("https.proxyHost", "proxy ip");
System.setProperty("https.proxyPort", "port");

关于ssl - 尝试从 JAX-WS 调用 asmx https Web 服务时连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13362374/

相关文章:

用于 C++ Web 服务的 Java 客户端

javascript - 缺少 Express SSL 身份验证功能?

java - 使用附件调用 Web 服务

c# - WebException : The server committed a protocol violation. Section=ResponseStatusLine(调用 Marketo SOAP API)

java - 创建 Web 服务客户端时出现 NoSuchMethodError

java - java.util.Map 类不是公共(public)的或不允许在 WebService 中使用自动生成的类进行实例化

使用 StackExchange.Redis 与 Redis 进行 SSL 连接

WCF SSL 终结点地址不是 HTTPS

ssl - 将 Mailchimp 嵌入表单与 SSL 网站集成

java - 如何在不同的 URL 公开 JaxWS Web 服务端点?