users@jax-rpc.java.net

XML parsing problem

From: Kämäräinen, Teemu <Teemu.Kamarainen_at_ttmtieto.fi>
Date: Thu, 18 Nov 2004 10:04:40 +0200

Hi!

This is actually an XML issue and not JAX-RPC issue, but may be
somebody here can help.

We have a JAX-RPC service that works well if we call it using
a client generated using JAX-RPC. But, when called using another
client (generated by other tools), an parsing error occurs.
Can anyone tell what's wrong with the second XML?

---------------------------------------------------
The WSDL of the service is:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:TTM" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" name="CreateCustomerAndAddressService" targetNamespace="urn:TTM">
  <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:TTM">
      <complexType name="execute">
        <sequence>
          <element name="CreateCustomerAndAddressInput_1" type="tns:CreateCustomerAndAddressInput" nillable="true"/></sequence></complexType>
      <complexType name="CreateCustomerAndAddressInput">
        <sequence>
          <element name="customerAllowsDirectMarketing" type="boolean" nillable="true"/>

          <element name="customerAllowsEmailMarketing" type="boolean" nillable="true"/>
          <element name="customerContactData" type="string" nillable="true"/>
          <element name="customerCreateDate" type="dateTime" nillable="true"/>
          <element name="customerDescription" type="string" nillable="true"/>
          <element name="customerFaxAreaCode" type="string" nillable="true"/>
          <element name="customerFaxNumber" type="long" nillable="true"/>
          <element name="customerFirstName" type="string" nillable="true"/>
          <element name="customerLanguageCode" type="string" nillable="true"/>
          <element name="customerLastName" type="string" nillable="true"/>

          <element name="customerNationalityId" type="string" nillable="true"/>
          <element name="customerTaxRegionId" type="string" nillable="true"/>
          <element name="customerTelNumber" type="long" nillable="true"/>
          <element name="customerTruncCode" type="string" nillable="true"/>
          <element name="customerUniqueId" type="string" nillable="true"/>
          <element name="genAddressCountryId" type="string" nillable="true"/>
          <element name="genAddressRegionId" type="string" nillable="true"/>
          <element name="genAddressStreetAddress" type="string" nillable="true"/>
          <element name="genAddressZipCode" type="string" nillable="true"/>

          <element name="instAddressCountryId" type="string" nillable="true"/>
          <element name="instAddressRegionId" type="string" nillable="true"/>
          <element name="instAddressStreetAddress" type="string" nillable="true"/>
          <element name="instAddressZipCode" type="string" nillable="true"/>
          <element name="password" type="string" nillable="true"/>
          <element name="systemId" type="string" nillable="true"/>
          <element name="username" type="string" nillable="true"/></sequence></complexType>
      <complexType name="executeResponse">
        <sequence>

          <element name="result" type="string" nillable="true"/></sequence></complexType>
      <element name="execute" type="tns:execute"/>
      <element name="executeResponse" type="tns:executeResponse"/></schema></types>
  <message name="CreateCustomerAndAddressIF_execute">
    <part name="parameters" element="tns:execute"/></message>
  <message name="CreateCustomerAndAddressIF_executeResponse">
    <part name="result" element="tns:executeResponse"/></message>
  <portType name="CreateCustomerAndAddressIF">
    <operation name="execute">

      <input message="tns:CreateCustomerAndAddressIF_execute"/>
      <output message="tns:CreateCustomerAndAddressIF_executeResponse"/></operation></portType>
  <binding name="CreateCustomerAndAddressIFBinding" type="tns:CreateCustomerAndAddressIF">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="execute">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal"/></input>
      <output>

        <soap:body use="literal"/></output></operation></binding>
  <service name="CreateCustomerAndAddressService">
    <port name="CreateCustomerAndAddressIFPort" binding="tns:CreateCustomerAndAddressIFBinding">
      <soap:address xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" location="secret"/></port></service></definitions>

---------------------------------------------------
The working SOAP request is:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="urn:TTM">
    <env:Body>
        <ns0:execute>
            <CreateCustomerAndAddressInput_1>
                <customerAllowsDirectMarketing xsi:nil="1"/>
                <customerAllowsEmailMarketing xsi:nil="1"/>
                <customerContactData xsi:nil="1"/>
                <customerCreateDate>2004-11-18T09:17:32.077+02:00</customerCreateDate>

                <customerDescription xsi:nil="1"/>
                <customerFaxAreaCode xsi:nil="1"/>
                <customerFaxNumber xsi:nil="1"/>
                <customerFirstName xsi:nil="1"/>
                <customerLanguageCode>1</customerLanguageCode>
                <customerLastName>testLastName</customerLastName>
                <customerNationalityId xsi:nil="1"/>
                <customerTaxRegionId>049</customerTaxRegionId>

                <customerTelNumber xsi:nil="1"/>
                <customerTruncCode xsi:nil="1"/>
                <customerUniqueId xsi:nil="1"/>
                <genAddressCountryId>FI</genAddressCountryId>
                <genAddressRegionId>049</genAddressRegionId>
                <genAddressStreetAddress>test street 1409</genAddressStreetAddress>
                <genAddressZipCode>00250</genAddressZipCode>

                <instAddressCountryId xsi:nil="1"/>
                <instAddressRegionId xsi:nil="1"/>
                <instAddressStreetAddress xsi:nil="1"/>
                <instAddressZipCode xsi:nil="1"/>
                <password>xxx</password>
                <systemId>xxx</systemId>
                <username>xxx</username>

            </CreateCustomerAndAddressInput_1>
        </ns0:execute>
    </env:Body>
</env:Envelope>

---------------------------------------------------
The non-working SOAP request is:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Body>
        <execute xmlns="urn:TTM">
            <CreateCustomerAndAddressInput_1>
                <customerAllowsDirectMarketing>False</customerAllowsDirectMarketing>
                <customerAllowsEmailMarketing>False</customerAllowsEmailMarketing>
                <customerContactData></customerContactData>
                <customerCreateDate xsi:NULL="true"/>

                <customerDescription></customerDescription>
                <customerFaxAreaCode></customerFaxAreaCode>
                <customerFaxNumber>0</customerFaxNumber>
                <customerFirstName></customerFirstName>
                <customerLanguageCode></customerLanguageCode>
                <customerLastName></customerLastName>
                <customerNationalityId></customerNationalityId>
                <customerTaxRegionId></customerTaxRegionId>

                <customerTelNumber>0</customerTelNumber>
                <customerTruncCode></customerTruncCode>
                <customerUniqueId></customerUniqueId>
                <genAddressCountryId></genAddressCountryId>
                <genAddressRegionId></genAddressRegionId>
                <genAddressStreetAddress></genAddressStreetAddress>
                <genAddressZipCode></genAddressZipCode>
                <instAddressCountryId></instAddressCountryId>

                <instAddressRegionId></instAddressRegionId>
                <instAddressStreetAddress></instAddressStreetAddress>
                <instAddressZipCode></instAddressZipCode>
                <password>xxx</password>
                <systemId>xxx</systemId>
                <username>xxx</username>
            </CreateCustomerAndAddressInput_1>
        </execute>
    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

---------------------------------------------------
And the JAX-RPC error message is:

JAXRPC.TIE.01: caught exception while handling request: deserialization error: unexpected XML reader state. expected: END: but found: START: {urn:TTM} UpdateAddressInput_1


Thanks in advance for any help!


   --Teemu

-- 
TTM-Tieto Oy
Teemu Kämäräinen
   
GSM: +358 44 700 3227
E-mail: teemu.kamarainen_at_ttmtieto.fi
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_jax-rpc.dev.java.net
For additional commands, e-mail: users-help_at_jax-rpc.dev.java.net