THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
JAX-WS Dispatch APIs
JAX-WS provides the "dispatch" mechanism which makes it easy to dynamically invoke services which you have not generated a client for. Using the Dispatch mechanism you can create messages (which can be JAXB objects, Source objects, or a SAAJMessage) and dispatch them to the server. A simple example might look like this:
Code Block | ||||
---|---|---|---|---|
| ||||
import java.net.URL; import javax.xml.transform.Source; import javax.xml.ws.Dispatch; import javax.xml.ws.Service; ... URL wsdlURL = new URL("http://localhost/hello?wsdl"); Service service = Service.create(wsdlURL, new QName("HelloService"), wsdlURL); Dispatch<Source> disp = service.createDispatch(new QName("HelloPort"), Source.class, Service.Mode.PAYLOAD); Source request = new StreamSource("<hello/>") Source response = disp.invoke(request); |
...
Instead of using the generated stub client directly, you can use Service.create to create Service instances, the following code illustrates this process:
Code Block | ||||
---|---|---|---|---|
| ||||
import java.net.URL;
import javax.xml.ws.Service;
...
URL wsdlURL = new URL("http://localhost/hello?wsdl");
QName SERVICE_NAME = new QName("http://apache.org/hello_world_soap_http", "SOAPService");
Service service = Service.create(wsdlURL, SERVICE_NAME);
Greeter client = service.getPort(Greeter.class);
String result = client.greetMe("test");
|
...