我在Java 1.6中有一个扩展javax.xml.ws.Service
的Web服务。 WSDL URL位于HTTPS端点,我在公司代理(我相信NTLM)后面。我有代理主机,端口,用户名和密码。我已经验证过,如果我在curl
文件中指定了代理,我可以使用.curlrc
访问WSDL。当调用构造函数时,它最终会因错误而超时:
javax.xml.ws.WebServiceException:无法在https://www.blah.com/myservice.asmx?wsdl访问WSDL。它失败了: 连接超时。
失败的呼叫是:
public MyService_Service() {
// this call to super is the one that times out
super(__getWsdlLocation(), MYSERVICE_QNAME);
}
我尝试了以下方法,但没有一种解决方案有效。
如何从代理服务器后面调用Web服务?
答案 0 :(得分:0)
我能够通过在服务器实例化之前添加以下代码来实现此目的:
System.setProperty("proxyHost", "myproxy.com");
System.setProperty("proxyPort", "8080");
奇怪的是,当我通过设置VM选项-DproxyHost
和-DproxyPort
对其进行测试时,这是有效的,然后搜索了如何以编程方式设置它。