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);
String resp;
ClientProxy.getClient(port).getInInterceptors().add(new LoggingInInterceptor());
ClientProxy.getClient(port).getOutInterceptors().add(new LoggingOutInterceptor());
resp = port.sayHi();
assertEquals("We should get the right response", resp, "Bonjour");
resp = port.greetMe("Willem");
assertEquals("We should get the right response", resp, "Hello Willem");
try {
resp = port.greetMe("Invoking greetMe with invalid length string, expecting exception...");
fail("We expect exception here");
} catch (WebServiceException ex) {
assertTrue("Get a wrong exception",
ex.getMessage().
indexOf("string length (67) is greater than maxLength facet (30)") >= 0);
}
try {
port.pingMe();
fail("We expect exception here");
} catch (PingMeFault ex) {
FaultDetailDocument detailDocument = ex.getFaultInfo();
FaultDetail detail = detailDocument.getFaultDetail();
assertEquals("Wrong faultDetail major", detail.getMajor(), 2);
assertEquals("Wrong faultDetail minor", detail.getMinor(), 1);
}
try {
port.greetMe("fault");
fail("Should have been a fault");
} catch (GreetMeFault ex) {
assertEquals("Some fault detail", ex.getFaultInfo().getStringValue());
}