java - 如何通过需要身份验证的代理发送 SOAP 消息?

标签 java soap proxy

我正在用 Apache Tomcat 7 托管的 java 1.7 编写一个 servlet,并且尝试将 SOAP 1.2 消息发送到 Web 服务。这不是一个非常具有挑战性的功能,所以我编写了一小段代码来实现它:

    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 消息?

最佳答案

我建议您使用具有基本身份验证的 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();

关于java - 如何通过需要身份验证的代理发送 SOAP 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31855935/

相关文章:

xml - http ://xml. apache.org/xml-soap 去哪儿了?

python-3.x - Python Zeep WSDL 意外元素回溯

apache - 设置 mod_proxy 以将 http 身份验证传递给服务器

javascript - Websockets 未在代理后面连接

java - Android Studio : Can't resolve imports (android. 支持。*)

java - Maven 导致互联网连接崩溃

java - 使用 COM4J 连接到 Quality Center v11

java - 带有 swing 的 TileMap (Java)

ruby-on-rails - 如何在 savon 2.0.2 中使用证书

proxy - 当使用可靠代理模式进行有保证的消息传递时,Akka 会保留多少次消息?