4

内部イントラネット Web サービスに接続する必要があります。私の会社ではプロキシ サーバーを使用してインターネットにアクセスしていますが、イントラネット サイトはプロキシを経由しません。IE と Firefox で WSDL に移動できますが、両方のブラウザーでアドレスをプロキシ例外リストに追加する必要があります。

wsimport を使用すると、プロキシ サーバーが原因で WSDL を取得できません。-httpproxy 引数を追加または除外すると、「プロキシを介してトンネリングできません」というエラーが表示されるため、これは必要な方法ではないと推測しています。

このURLのプロキシサーバーを無視するようにwsimportに指示できる方法を知っている人はいますか?

ニール

4

6 に答える 6

7

内部 (イントラネット) URL にプロキシを使用し、wsimport.exe (JDK 1.6、1.7 などの一部) を使用して外部 URL (w3c.com) にプロキシをスキップする方法を探して、この投稿にたどり着きました。nonProxyHosts を配置する機能がないことがわかったので、先に進んで Java クラス呼び出しを使用しました。

このようなもの

java -Dhttp.proxyHost=proxyServer -Dhttp.proxyPort=9000 -Dhttp.nonProxyHosts="localhost|*.intranet-domain.com" -classpath %JAVA_HOME%\lib\tools.jar com.sun.tools.internal.ws.WsImport -p com.ws.client.pkg http://app.intranet-domain.com/endpoint?wsdl 

読みやすくするために:

java
  -Dhttp.proxyHost=proxyServer
  -Dhttp.proxyPort=9000
  -Dhttp.nonProxyHosts="localhost|*.intranet-domain.com"
  -classpath %JAVA_HOME%\lib\tools.jar
  com.sun.tools.internal.ws.WsImport
  -p com.ws.client.pkg
  http://app.intranet-domain.com/endpoint?wsdl 

「-Dhttp.nonProxyHosts」は、前にその行でプロキシを構成した場合にのみ機能することに注意してください。すべてのパラメーターが必要です。したがって、デフォルトのプロキシを無効にしたいだけの場合は、ここで再度設定する必要があります。

于 2013-06-06T05:26:15.777 に答える
2

私は答えを見つけました。以下をJVMパラメータとして追加する必要があり、Internet Explorer(またはMacの場合はSafari)のプロキシアドレスと除外リストを使用します。

-Djava.net.useSystemProxies=true

http://jeannotsweblog.blogspot.co.uk/2009/06/wsimport-with-proxy.htmlから回答を取得しました

于 2012-04-27T09:09:25.123 に答える
0

Neil Kennedy によって提案されたアプローチは、アプリケーション レベルでそのフラグを設定できる場合に機能します。ただし、特定の URL にプロキシを使用する場合は、ProxySelector クラスを参照してください。ProxySelector をプロキシ ホストとポートで拡張する独自のプロキシ セレクター クラスを記述し、それをデフォルトのプロキシー セレクターとして設定できます。このスレッドを参照してください。広い物件?いろおじさんの答え。また、何が起こっているのかを明確に説明している Proxyselector の詳細については、 http: //docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html を参照してください。

于 2016-04-05T19:38:21.860 に答える