Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Portable" JAX-WS client

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

like image 699
rnd_nr_gen Avatar asked Nov 03 '09 15:11

rnd_nr_gen


People also ask

What is a Web service client?

A web services client is an application capable of sending and receiving SOAP messages. Such an application serializes or deserializes the SOAP messages to a programming language type system enabling programmatic processing.


2 Answers

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, "..."); 
like image 195
Pascal Thivent Avatar answered Nov 09 '22 08:11

Pascal Thivent


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.

like image 35
dz. Avatar answered Nov 09 '22 08:11

dz.