I have what I thought was a simple doc/literal wrapped style WSDL.  I'm
trying to do WSDL first design.  I'm using Axis .94 to generate the
server side code.  That all goes okay. When a request comes in I'm
getting a error which I've attached.   I understand that this is a
namespace issue but what I don't see is what is wrong with the WSDL.  I
believe it is valid but does anyone see an error that I missed in the
syntax?  I used two separate clients trying to post to this service, one
from Axis and one from webMethods.  They both give the same error.


**Error**
aused by: java.lang.RuntimeException: Data binding error
        at
org.apache.axis2.CreateTicketMessageReceiver.fromOM(CreateTicketMessageR
eceiver.java:120)
        at
org.apache.axis2.CreateTicketMessageReceiver.invokeBusinessLogic(CreateT
icketMessageReceiver.java:50)
        ... 20 more
Caused by: org.apache.xmlbeans.XmlException: error: The document is not
a [EMAIL PROTECTED]:www.pgn.wbmethod:servicerequest: document element
namespace mismatch expected "urn:www.pgn.wbmethod:servicerequest" got
"urn:www.pgn.wbmethod:servicerequesttypes"

If I take out the xmlns:ter="urn:www.pgn.wbmethod:servicerequesttypes"
and any references to it then the Axis client works.  But I think it
should work the other way.


****WSDL**

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="ServiceRequestSample"
targetNamespace="urn:www.pgn.wbmethod:servicerequest" 
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
     xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
     xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
     xmlns:ser="urn:www.pgn.wbmethod:servicerequest"
     xmlns:ter="urn:www.pgn.wbmethod:servicerequesttypes">
     <wsdl:types>
        <xs:schema  elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema";
targetNamespace="urn:www.pgn.wbmethod:servicerequesttypes">
        <xs:complexType name="ServiceRequestType">
                <xs:sequence>
                        <xs:element name="customerid" type="xs:string"/>
                        <xs:element name="address1" type="xs:string"/>
                        <xs:element name="address2" type="xs:string"/>
                        <xs:element name="problemdescription"
type="xs:string"/>
                        <xs:element name="contact" type="xs:string"/>
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="ServiceResponseType">
                <xs:sequence>
                        <xs:element name="ticketnumber"
type="xs:string"/>
                </xs:sequence>
        </xs:complexType>
        <xs:element name="ServiceRequest"
type="ter:ServiceRequestType"/>
        <xs:element name="ServiceResponse"
type="ter:ServiceResponseType"/>
</xs:schema>
        </wsdl:types>
        <wsdl:message name="createservicerequest">
                 <wsdl:part name="parameters"
element="ter:ServiceRequest"/>
        </wsdl:message>
        <wsdl:message name="createserviceresponse">
                <wsdl:part name="parameters"
element="ter:ServiceResponse"/>
        </wsdl:message>
        <wsdl:portType name="CreateTicket">
         <wsdl:operation name="ServiceRequest">
            <wsdl:input message="ser:createservicerequest"/>
            <wsdl:output message="ser:createserviceresponse"/>
          </wsdl:operation>
          </wsdl:portType>
          <wsdl:binding name="servicerequestBinding"
type="ser:CreateTicket">
              <soap:binding
transport="http://schemas.xmlsoap.org/soap/http"; style="document"/>
              <wsdl:operation name="ServiceRequest">
                <soap:operation soapAction="" style="document"/>
                  <wsdl:input>
                      <soap:body use="literal"/>
                    </wsdl:input>
                    <wsdl:output>
                      <soap:body use="literal"/>
                    </wsdl:output>
              </wsdl:operation>
           </wsdl:binding>
        <wsdl:service name="serviceCreateTicket">
          <wsdl:port name="servicerequestPort"
binding="ser:servicerequestBinding">
           <soap:address
location="http://localhost:8080/axis2/services/createticket"/>
          </wsdl:port>
        </wsdl:service>
        
</wsdl:definitions>

markg


Mark E. Griffin
Developer Services
Progress Energy

Reply via email to