package org.apache.axis2.jaxws.addressbook; | |
import javax.xml.namespace.QName; | |
import javax.xml.ws.BindingProvider; | |
import javax.xml.ws.Dispatch; | |
import javax.xml.ws.Service; | |
import java.util.Map; | |
/** | |
* Simple JAX-WS Dispatch client for the address book service implementation. | |
*/ | |
public class AddressBookClient { | |
private static String NAMESPACE = "http://addressbook.jaxws.axis2.apache.org"; | |
private static QName QNAME_SERVICE = new QName(NAMESPACE, "service"); | |
private static QName QNAME_PORT = new QName(NAMESPACE, "port"); | |
private static String ENDPOINT_URL = "http://localhost:8080/axis2/services/AddressBookImplService.AddressBookImplPort"; | |
private static String ADD_ENTRY_BODY_CONTENTS = | |
"<ns1:addEntry xmlns:ns1=\"http://addressbook.jaxws.axis2.apache.org\">" + | |
"<ns1:firstName xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myFirstName</ns1:firstName>" + | |
"<ns1:lastName xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myLastName</ns1:lastName>" + | |
"<ns1:phone xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myPhone</ns1:phone>" + | |
"<ns1:street xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myStreet</ns1:street>" + | |
"<ns1:city xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myCity</ns1:city>" + | |
"<ns1:state xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myState</ns1:state>" + | |
"</ns1:addEntry>"; | |
private static String FIND_BODY_CONTENTS = | |
"<ns1:findByLastName xmlns:ns1=\"http://addressbook.jaxws.axis2.apache.org\">" + | |
"<ns1:lastName xmlns=\"http://addressbook.jaxws.axis2.apache.org\">myLastName</ns1:lastName>" + | |
"</ns1:findByLastName>"; | |
public static void main(String[] args) { | |
try { | |
System.out.println("AddressBookClient ..."); | |
Service svc = Service.create(QNAME_SERVICE); | |
svc.addPort(QNAME_PORT, null, ENDPOINT_URL); | |
// A Dispatch<String> client sends the request and receives the response as | |
// Strings. Since it is PAYLOAD mode, the client will provide the SOAP body to be | |
// sent; the SOAP envelope and any required SOAP headers will be added by JAX-WS. | |
Dispatch<String> dispatch = svc.createDispatch(QNAME_PORT, | |
String.class, Service.Mode.PAYLOAD); | |
// Invoke the Dispatch | |
System.out.println(">> Invoking sync Dispatch for AddEntry"); | |
String response = dispatch.invoke(ADD_ENTRY_BODY_CONTENTS); | |
System.out.println("Add Entry response: " + response); | |
System.out.println(">> Invoking Dispatch for findByLastName"); | |
String response2 = dispatch.invoke(FIND_BODY_CONTENTS); | |
System.out.println("Find response: " + response2); | |
} catch (Exception e) { | |
System.out.println("Caught exception: " + e); | |
e.printStackTrace(); | |
} | |
} | |
} |