Время ожидания подключения истекло при попытке вызвать веб-службу asmx https из JAX-WS

Я пытаюсь вызвать внешнюю веб-службу, конечная точка которой находится за пределами https.

Мы пытаемся выполнить вызов с помощью JAX-WS (стандартная реализация Oracle из Java EE 6).

Из 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, что веб-сервис находится на https ...


person user1821021    schedule 13.11.2012    source источник


Ответы (1)


Вы пытались установить прокси https вместо прокси http?

System.setProperty("https.proxyHost", "proxy ip");
System.setProperty("https.proxyPort", "port");
person user2839258    schedule 15.11.2013