我有一个Spring应用程序使用spring-ws来处理我在本地开发机器上运行的所有SOAP消息。当我部署到需要使用代理服务器到达外部世界的任何流量时,我似乎陷入困境。我的印象是我可以设置一些JVM参数,例如
-Dhttp.proxyHost=proxyhostURL
-Dhttp.proxyPort=proxyPortNumber
-Dhttp.proxyUser=someUserName
-Dhttp.proxyPassword=somePassword
但是类文件似乎没有遵守proxyUser和proxyPassword参数。
我甚至更进了一步,在java代码中实现了它:
System.getProperties().put("http.proxyHost", "someProxyURL");
System.getProperties().put("http.proxyPort", "someProxyPort");
System.getProperties().put("http.proxyUser", "someUserName");
System.getProperties().put("http.proxyPassword", "somePassword");
但仍然没有运气。
然后我尝试使用java.net.Authenticator来设置用户名和密码,但这似乎不起作用:
Authenticator.setDefault(
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(authUser, authPassword.toCharArray());
}
}
);
有没有人有任何建议如何使用Java6,Tomcat 6和Spring 3(使用spring-ws)通过代理路由所有流量
答案 0 :(得分:1)
事实证明它没有兑现传入的JVM HTTP参数,因为我的Web服务正在使用HTTPS。将标志设置为以下内容后:
-Dhttps.proxyHost=proxyhostURL
-Dhttps.proxyPort=proxyPortNumber
-Dhttps.proxyUser=someUserName
-Dhttps.proxyPassword=somePassword
一切都按计划进行。