SOAPService ss = new SOAPService(wsdl, SERVICE_NAME);
QName soapPort = new QName("http://apache.org/hello_world_soap_http/xmlbeans", "SoapPort");
ss.addPort(soapPort, SOAPBinding.SOAP11HTTP_BINDING, "http://localhost:"
+ NOWSDL_PORT + "/SoapContext/SoapPort");
Greeter port = ss.getPort(soapPort, Greeter.class);
Client client = ClientProxy.getClient(port);
List<Header> headers = new ArrayList<Header>();
org.apache.helloWorldSoapHttp.xmlbeans.types.GreetMeDocument doc
= org.apache.helloWorldSoapHttp.xmlbeans.types.GreetMeDocument.Factory.newInstance();
doc.addNewGreetMe().setRequestType("doc format header");
Header head = new Header(new QName("", "doc"), doc,
client.getEndpoint().getService().getDataBinding());
headers.add(head);
org.apache.helloWorldSoapHttp.xmlbeans.types.GreetMeDocument.GreetMe gm
= org.apache.helloWorldSoapHttp.xmlbeans.types.GreetMeDocument.GreetMe.Factory.newInstance();
gm.setRequestType("non-doc format header");
head = new Header(new QName("http://somenamespace.com", "nondocheader"), gm,
client.getEndpoint().getService().getDataBinding());
headers.add(head);
((BindingProvider)port).getRequestContext().put(Header.HEADER_LIST, headers);
String resp;
ClientProxy.getClient(port).getInInterceptors().add(new LoggingInInterceptor());
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
ClientProxy.getClient(port).getOutInterceptors().add(new LoggingOutInterceptor(pw));
resp = port.sayHi();
assertEquals("We should get the right response", resp, "Bonjour");
assertTrue(sw.toString().contains("doc format header"));
assertTrue(sw.toString().contains("non-doc format header"));
assertTrue(sw.toString().contains("nondocheader"));