Question

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...)

Was it helpful?

Solution

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, "..."); 

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top