Hi, I created a client server for dispatch provider based web service. Below are its code and error. I used eclipse WebService (STP) plugin to write the service and generate the wsdl and client. I modified client as per the cxf web site sample.
The webservice is deployed to tomcat and its log are are below. Web Service ----------- package com.mkyong.webservice; import javax.jws.WebService; import javax.xml.soap.SOAPMessage; import javax.xml.ws.Provider; import javax.xml.ws.ServiceMode; import javax.xml.ws.Service; import javax.xml.ws.WebServiceProvider; @WebService(targetNamespace = "http://webservice.mkyong.com/", portName = "ProductWebServicePort", serviceName = "ProductWebServiceService") @WebServiceProvider @ServiceMode(value=Service.Mode.PAYLOAD) public class ProductWebService implements Provider<SOAPMessage> { public SOAPMessage invoke(SOAPMessage request) { // TODO Auto-generated method stub SOAPMessage response = null; try { System.out.println("Incoming Client Request as a SOAPMessage"); System.out.println(request); } catch (Exception ex) { ex.printStackTrace(); } return response; } } Client: ------- /** * Please modify this class to meet your needs * This class is not complete */ package com.mkyong.webservice; import java.io.InputStream; import javax.xml.namespace.QName; import javax.xml.soap.MessageFactory; import javax.xml.soap.SOAPMessage; import javax.xml.transform.dom.DOMSource; import javax.xml.ws.Dispatch; import javax.xml.ws.Service; /** * This class was generated by Apache CXF 2.5.2 * 2012-04-13T13:43:44.952+05:30 * Generated source version: 2.5.2 * */ public class ProductWebService_PortTypeClient { public static void main(String[] args) throws Exception { QName serviceName = new QName("http://webservice.mkyong.com/", "ProductWebServiceService"); QName portName = new QName("http://webservice.mkyong.com/", "ProductWebServicePort"); Service service = Service.create(serviceName); Dispatch<SOAPMessage> dispatch = service.createDispatch(portName, SOAPMessage.class, Service.Mode.PAYLOAD); InputStream is1 = Service.class.getResourceAsStream("CreateProduct.xml"); if (is1 == null) { System.err.println("Failed to create input stream from file " + "CreateProduct.xml, please check"); System.exit(-1); } MessageFactory factory = MessageFactory.newInstance(); SOAPMessage soapReq1 = factory.createMessage(null, is1); System.out.println("Invoking server through Dispatch interface using SOAPMessage"); SOAPMessage soapResp = dispatch.invoke(soapReq1); System.out.println("Response from server: " + soapResp.getSOAPBody().getTextContent()); } } Client run error: ----------------- Apr 13, 2012 2:45:25 PM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass INFO: Creating Service {http://webservice.mkyong.com/}ProductWebServiceService from class org.apache.cxf.jaxws.support.DummyImpl Exception in thread "main" javax.xml.ws.WebServiceException: Port {http://webservice.mkyong.com/}ProductWebServicePort not found. at org.apache.cxf.jaxws.ServiceImpl.getJaxwsEndpoint(ServiceImpl.java:254) at org.apache.cxf.jaxws.ServiceImpl.createDispatch(ServiceImpl.java:634) at org.apache.cxf.jaxws.ServiceImpl.createDispatch(ServiceImpl.java:609) at org.apache.cxf.jaxws.ServiceImpl.createDispatch(ServiceImpl.java:601) at javax.xml.ws.Service.createDispatch(Service.java:352) at com.mkyong.webservice.ProductWebService_PortTypeClient.main(ProductWebService_PortTypeClient.java:30) tomcat log: ----------- Apr 13, 2012 2:44:13 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@106b5f4: defining beans [cxf,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,productwebservice]; root of factory hierarchy Apr 13, 2012 2:44:13 PM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL INFO: Creating Service {http://webservice.mkyong.com/}ProductWebServiceService from WSDL: wsdl/productwebservice.wsdl Apr 13, 2012 2:44:14 PM org.apache.cxf.endpoint.ServerImpl initDestination INFO: Setting the server's publish address to be /ProductWebServicePort Apr 13, 2012 2:44:14 PM org.apache.catalina.core.StandardContext reload INFO: Reloading Context with name [/WebServiceProject] is completed Regards, Miten. -- View this message in context: http://cxf.547215.n5.nabble.com/dispatch-api-cannot-find-port-tp5637843p5637843.html Sent from the cxf-user mailing list archive at Nabble.com.
