我有一个应用程序,它使用Spring通过JaxWsPortProxyFactoryBean类与一些Web服务进行通信。一切正常。
我的应用程序的另一部分需要与互联网通信(对于某些RSS源),因此我需要配置我的代理设置。我这样做是通过将以下系统属性添加到我的Tomcat服务器:
-Dhttp.proxyHost=webproxy -Dhttp.proxyPort=80 -Dhttp.proxyUser=myUser -Dhttp.proxyPassword=myPass
我的RSS源现在可以正常工作(所以代理设置都正常),但我的网络服务调用失败,并带有以下内容:
org.springframework.remoting.RemoteAccessException: Could not access remote service at [null]; nested exception is com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 403: Forbidden
at org.springframework.remoting.jaxws.JaxWsPortClientInterceptor.doInvoke(JaxWsPortClientInterceptor.java:504)
at org.springframework.remoting.jaxws.JaxWsPortClientInterceptor.invoke(JaxWsPortClientInterceptor.java:481)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
看起来我的应用程序正在尝试通过webservice调用的代理(这是本地系统),因此尝试为webservice域设置nonProxyHosts属性(注意 - 似乎与一个拼写错误的一些混淆关于这个的文档 - 因此有两个值):
-Dhttp.noProxyHosts="localhost|myDomain.co.uk" -Dhttp.nonProxyHosts="localhost|myDomain.co.uk"
但是,我仍然在我的网络服务电话上获得403 Forbidden异常。
有任何建议,因为我有点难以理解为什么http.noProxyHosts / .nonProxyHosts似乎没有得到应用?
仅供参考 - 我正在使用Spring 3.1.0.RELEASE和Tomcat 6.0.32