Hi,

I managed to get webapp running on tomcat.  I had to copy wsdl to classes
and also keep one above WEB-INF. Here is error when I run client:

Invoking server through Dispatch interface using SOAPMessage
Exception in thread "main"
com.sun.xml.internal.ws.client.ClientTransportException:* The server sent
HTTP status code 404: Not Found*
        at
com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.checkStatusCode(HttpTransportPipe.java:296)
        at
com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.createResponsePacket(HttpTransportPipe.java:245)
        at
com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:203)
        at
com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:122)
        at
com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:95)
        at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:626)
        at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:585)
        at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:570)
        at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:467)
        at com.sun.xml.internal.ws.client.Stub.process(Stub.java:308)
        at
com.sun.xml.internal.ws.client.dispatch.DispatchImpl.doInvoke(DispatchImpl.java:177)
        at
com.sun.xml.internal.ws.client.dispatch.DispatchImpl.invoke(DispatchImpl.java:203)
        at
com.mkyong.webservice.ProductWebService_PortTypeClient.main(ProductWebService_PortTypeClient.java:43)

Here is wsdl:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="ProductWebServiceService"
targetNamespace="http://webservice.mkyong.com/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:tns="http://webservice.mkyong.com/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";>
  <wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns="http://webservice.mkyong.com/"; attributeFormDefault="unqualified"
elementFormDefault="unqualified"
targetNamespace="http://webservice.mkyong.com/";>
  <xs:complexType abstract="true" name="soapMessage">
    <xs:sequence>
      <xs:element minOccurs="0" name="contentDescription" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="invoke" nillable="true" type="xs:anyType"/>
  <xs:element name="invokeResponse" nillable="true" type="xs:anyType"/>
</xs:schema>
  </wsdl:types>
  <wsdl:message name="invoke">
    <wsdl:part name="invoke" element="tns:invoke">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="invokeResponse">
    <wsdl:part name="invokeResponse" element="tns:invokeResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="ProductWebService">
    <wsdl:operation name="invoke">
      <wsdl:input name="invoke" message="tns:invoke">
    </wsdl:input>
      <wsdl:output name="invokeResponse" message="tns:invokeResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="ProductWebServiceServiceSoapBinding"
type="tns:ProductWebService">
    <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="invoke">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="invoke">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="invokeResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="ProductWebServiceService">
    <wsdl:port name="ProductWebServicePort"
binding="tns:ProductWebServiceServiceSoapBinding">
      <soap:address location="http://localhost:8080/ProductWebServicePort"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Client:

/**
 * Please modify this class to meet your needs
 * This class is not complete
 */

package com.mkyong.webservice;
import java.io.InputStream;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPMessage;
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(new
URL("http://localhost:8080/mkyong_webapp/wsdl/ProductWebService.wsdl";),
serviceName);
        Dispatch<SOAPMessage> dispatch = service.createDispatch(portName,
SOAPMessage.class, Service.Mode.MESSAGE);
        
        InputStream is1 = 
ProductWebService_PortTypeClient.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());

        

    }

}



--
View this message in context: 
http://cxf.547215.n5.nabble.com/com-sun-xml-internal-ws-client-ClientTransportException-The-server-sent-HTTP-status-code-404-Not-Foud-tp5656294p5656294.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to