我正在Apache Tomcat 7中托管的java 1.7中编写一个servlet,我正在尝试向Web服务发送SOAP 1.2消息。这不是一个非常具有挑战性的功能,所以我写了一些代码来做到这一点:
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
String url = petition.getUrl();
SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(xml), url);
问题是我的公司代理正在停止呼叫,而且我总是遇到超时异常。我发现我可以像这样设置代理设置,但它不包括引入我需要完成调用的代理身份验证的方法。
//Set the http proxy to webcache.example.com:8080
System.setProperty("http.proxyHost", "webcache.example.com");
System.setProperty("http.proxyPort", "8080");
有没有办法让我在代理中登录而不必使用URLConnection来发送SOAP消息?
答案 0 :(得分:0)
我建议您使用基本身份验证的Jax-ws客户端,以下代码在不使用URLConnection的情况下设置身份验证配置:
Service s = new Service();
Port port = s.getPort();
BindingProvider prov = (BindingProvider)port;
prov.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "myusername");
prov.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "mypassword");
port.call();