0

SOAP クライアント クラスを生成するために wsimport を使用しています。ただし、問題は、サーバーがポート 8080 で実行されている間、ポート 80 でインターネットからサーバーに到達できるようにするプロキシが存在することです。WSDL では、サーバー ポート 8080 がまだ指定されています。

サーバーに接続すると、クライアントが最初に要求するのは WSDL です。次に、この WSDl で URL を取得し、それを使用してサーバーに接続しようとしますが、ポート 8080 に外部から到達できないため、明らかに失敗します。

この問題を解決する標準的な方法はありますか?

ありがとう。

4

1 に答える 1

2

クライアント コードが WSDL を正常に取得した場合は、次のようにエンドポイント アドレスを明示的に指定できます。

ExampleService exampleService = new ExampleService();
Example example = exampleService.getExamplePort();
BindingProvider bindingProvider = (BindingProvider) example;
bindingProvider.getRequestContext().put(
    BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
    "http://ws.someservice.com:80/soap/ExampleBean");

その最後の行は、WSDL のポート URL (内部のもの) をオーバーライドします。

wsimport の使用について詳しくは、http ://shrubbery.homeip.net/c/display/W/Consuming+a+Web+Service+with+Java+6+and+JAX-WS をご覧ください。

于 2011-05-10T16:28:26.183 に答える