Data Binding performance
Now lets come to the real thing.Here goes my Dispatch client.
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPConstants;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.Dispatch;
import javax.xml.ws.Service;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.soap.SOAPBinding;
import org.services.encrypt.EncryptionException;
import org.services.encrypt.ShaEncrypter;
/**
*
* @author ajay.biswal
*/
public class ClientTest {
public static void main(String arg[]) throws SOAPException, EncryptionException {
QName serviceName = new QName("http://org.services.ajaywebservices/", "TestService");
QName portName = new QName("http://org.services.ajaywebservices/", "TestPort");
String endpointAddress =
"http://localhost:8080/myapps/Test";
Service service = Service.create(serviceName);
service.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING, endpointAddress);
Dispatchdispatch =
service.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE);
Map> headers = new HashMap >();
ShaEncrypter encryptor = new ShaEncrypter();
String userEnc = encryptor.encrypt("ajaybiswal");
System.out.println("*******userEnc****" + userEnc);
String passEnc = encryptor.encrypt("ajaybiswal");
System.out.println("*******passEnc****" + passEnc);
String data = new String(userEnc + ":" + passEnc);
headers.put("Authorization", Collections.singletonList("Basic " + new String(data)));
BindingProvider bp = (BindingProvider) dispatch;
Maprc = bp.getRequestContext();
rc.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
MessageFactory factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
SOAPMessage request = factory.createMessage();
SOAPPart part = request.getSOAPPart();
SOAPEnvelope env = part.getEnvelope();
SOAPBody body = env.getBody();
SOAPElement operation = body.addChildElement("hasWorkflowgroup", "ns1",
"http://org.services.ajaywebservices/");
SOAPElement value = operation.addChildElement("arg0");
value.addTextNode("ajaybiswal");
request.saveChanges();
SOAPMessage response = dispatch.invoke(request);
QName responseName = new QName("http://org.services.ajaywebservices/", "hasWorkflowgroupResponse");
SOAPBodyElement bodyElement = (SOAPBodyElement) response.getSOAPBody().getChildElements(responseName).next();
String message = bodyElement.getFirstChild().getTextContent();
System.out.println("****REsponse******" + message);
}
}