0

JAX-WS インポート WSDL クライアントがあります。Web サービス エンドポイントに接続しようとすると、JAX-WS クライアントが WSDL をロードしようとします。どうして?

  • プロジェクトに WSDLを保存したくありません。
  • Web サービス URL から WSDL を再度ロードしたくありませんか?

質問:

  • この動作をバイパスする機会はありますか?
  • 実行時に Web サービス エンドポイント URL を追加する方法は?

同じ QName とポート名を持つポートの追加は失敗します。同じものを追加できないためです。別のポートを追加しても問題ありませんが、追加されたポート定義が WSDL に含まれていないため、Web サービス デリゲートから取得できません。

JAX-WSは完全に間違った方法のようです:(

4

1 に答える 1

2

今日、あなたは幸運です。おっしゃる通り、方法はあります。

QName qname = new QName("http://thenamespace", "FooService");
FooService service = new FooService(null, qname); // null for ignore WSDL file
Foo port = service.getFooPort();
BindingProvider bindingProvider = (BindingProvider) port;
bindingProvider.getRequestContext()
    .put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
    "http://foo.com/soap/fooBean");

// Use the service
Object obj = port.doSomething(param);
于 2013-03-27T03:53:28.607 に答える