In the previous post we created and deployed the Echo webservice. Now to test the same. For this I created a simple client.
private static User getUserInstance() { User user = new User(); user.setId(1L); user.setName("Test"); user.setWeight(new BigDecimal("76")); return user; } public static void main(String[] args) throws MalformedURLException { final String TARGET_NAMESPACE = "http://www.cfx.ws/"; final String endpointAddress = "http://localhost:8080/WithSpring/services/echo"; final String wsdlUrl = endpointAddress + "?wsdl"; URL wsdlLocation = new URL(wsdlUrl); final QName SERVICE_NAME = new QName(TARGET_NAMESPACE, "EchoImplService"); final QName PORT_NAME = new QName(TARGET_NAMESPACE, "EchoImplPort"); // Service objects provide the client view of a Web service. final Service service = Service.create(wsdlLocation, SERVICE_NAME); // Creates a new port for the service. Ports created in this way contain // no WSDL port type information and can only be used for creating Dispatchinstances. service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING, endpointAddress); IEcho echoStub = service.getPort(IEcho.class); System.out.println(echoStub.echoHi("are u there")); System.out.println(echoStub.echoHiToUser(getUserInstance())); }The code:
- created qualified names for the service and the port.
- It created Service objects that provide the client view of a Web service.
- It then created a new port for the service – indicating the messaging format and the endpoint address to use.
- Next step was to acquire a stub from the service object.
- It executed the two exposed operations I had made the IEcho and User classes available at the client. In a normal project the same would be achieved by generating the java classes from the wsdl.
891 [main] DEBUG org.apache.cxf.transport.http.HTTPConduit - Conduit '{http:/ /cxf.apache.org}TransportURIResolver.http-conduit' has been configured for plain http. 891 [main] DEBUG org.apache.cxf.transport.http.Headers - Accept: */* 1000 [main] INFO org.apache.cxf.service.factory.ReflectionServiceFactoryBean - Creating Service {http://www.cfx.ws/}EchoImplService from WSDL: http://localho st:8080/WithSpring/services/echo?wsdl 1375 [main] DEBUG org.apache.cxf.jaxb.JAXBDataBinding - Classes known to this context: ... com.code.first.ws.server.User com.code.first.ws.server.jaxws_asm.EchoHi com.code.first.ws.server.jaxws_asm.EchoHiResponse com.code.first.ws.server.jaxws_asm.EchoHiToUser com.code.first.ws.server.jaxws_asm.EchoHiToUserResponse ... no HandlerChain annotation on class javax.xml.ws.Service 1531 [main] DEBUG org.apache.cxf.jaxws.ServiceImpl - created proxy 1531 [main] DEBUG org.apache.cxf.endpoint.ClientImpl - Invoke, operation info: [BindingOperationInfo: {http://server.ws.first.code.com/}echoHi], params: [are u there] ... 1797 [main] DEBUG org.apache.cxf.transport.http.HTTPConduit - Sending POST Mes sage with Headers to http://localhost:8080/WithSpring/services/echo Conduit :{ht tp://www.cfx.ws/}EchoImplPort.http-conduit ... 1875 [main] DEBUG org.apache.cxf.ws.policy.PolicyVerificationInInterceptor - V erified policies for inbound message. 1875 [main] DEBUG org.apache.cxf.phase.PhaseInterceptorChain - Invoking handle Message on interceptor org.apache.cxf.interceptor.StaxInEndingInterceptor@dd75a4 Hi are u thereThis completes the client.
No comments:
Post a Comment