我正在創建一個web服務客戶端使用地鐵與jax-ws我想重寫端點地址。jax-ws地鐵覆蓋終點地址
使用中的以下示例2.11.1。 BindingProvider.ENDPOINT_ADDRESS_PROPERTY我能做到這一點: http://metro.java.net/guide/How_to_invoke_and_endpoint_by_overriding_endpoint_address_in_the_WSDL.html
//Create service and proxy from the generated Service class.
HelloService service = new HelloService();
HelloPort proxy = service.getHelloPort();
((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
"http://new/endpointaddress");
proxy.sayHello("Hello World!");
但我不明白爲什麼我不能使用service.getHelloPort()的sayHello(的 「Hello World!」)代替。 proxy.sayHello(「Hello World!」)如示例所示。如果我這樣做,web服務客戶端正在使用其默認端點地址,而不是我想要使用的地址。
它看起來像我得到每次HelloPort的新實例,我稱之爲getHelloPort()
任何人都可以解釋一下嗎?
你的代碼是什麼?你如何覆蓋終點地址?用代碼示例更新了 – Osw
。我還得到了一些指針。 ()service.getHelloPort()== service.getHelloPort())輸出false,所以它真的看起來像我爲每個getHelloPort()調用得到一個新的實例 – Gotcha