Spring を使用して、JaxWsPortProxyFactoryBean クラスを介していくつかの Web サービスと通信するアプリケーションがあります。すべて正常に動作します。
私のアプリケーションの別の部分は (一部の RSS フィードのために) インターネットと通信する必要があるため、プロキシ設定を構成する必要があります。これを行うには、Tomcat サーバーに次のシステム プロパティを追加します。
-Dhttp.proxyHost=webproxy -Dhttp.proxyPort=80 -Dhttp.proxyUser=myUser -Dhttp.proxyPassword=myPass
RSS フィードは機能するようになりました (したがって、プロキシ設定はすべて適切です) が、Web サービスの呼び出しは次のように失敗します。
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)
私のアプリは (ローカル システムへの) Web サービス呼び出しのプロキシを経由しようとしているように見えるので、Web サービス ドメインの nonProxyHosts プロパティを設定しようとしました (注 - これに関するドキュメントのタイプミスで混乱しているようです) - したがって、2 つの値):
-Dhttp.noProxyHosts="localhost|myDomain.co.uk" -Dhttp.nonProxyHosts="localhost|myDomain.co.uk"
ただし、Web サービス呼び出しで 403 Forbidden 例外が引き続き発生します。
http.noProxyHosts/.nonProxyHosts が適用されないように見える理由について少し困惑しているので、何か提案はありますか?
参考までに - Spring 3.1.0.RELEASE と Tomcat 6.0.32 を使用しています