问题
I deployed a JAX-WS Service and use wsimport to generate client code. Because I run wsimport on localhost, I got the client code with binind on "localhost" address.
But I want to reuse those client code on other computers which access my deployed service with a public IP y.y.y.y. How can dynamically use those (once) generated client code to access my service. (The ip of service may change...)
回答1:
This is covered in the FAQ of JAX-WS:
Q. How can I change the Web Service address dynamically for a request ?
((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "...");
回答2:
Sure. Take a look at the JBoss example. Here's the relevant code snippet:
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location");
Usually the WSDL is generated and therfore the WS provider inserts the relevant URLs into the WSDL.
来源:https://stackoverflow.com/questions/1668245/portable-jax-ws-client