6 Replies Latest reply on Aug 24, 2004 11:33 AM by thomas.diesler

    descriptors changes from rpc/lit - doc/lit

    ilays

      i have a rpc/lit great working service -
      only one problem: j2me require doc/lit only
      when im changing from rpc literal to doc literal -
      the server side require only changes in the wsdl and mapping(sometimes);
      no probs!!

      on the client side (stand alone) after using the wsdl2java on the new wsdl to rebuild the helper files :
      i get same saxException from last post (child element not expected)
      does the client require any more changes beside rebuilding the helper files ?
      are there any wsdl2java certain flags i didnt took into consideration when using doc/ lit ?

      maybe some changes in the wsdl are required ????

      please....if anyone can help .......
      u can see from my posts im pretty desperate



        • 1. Re: descriptors changes from rpc/lit - doc/lit
          thomas.diesler

          as u asked :
          please notice this example refer to a rpc/lit service
          also creating the same problem,
          service is packed in a .war
          i also tried to change the sequence in the wsdl ..didnt help

          SEI :

          package prj.service.admin;
          import prj.ejb.utils.*;
          import java.util.*;
          
          import java.rmi.RemoteException;
          
          public interface NewsAdminEndpoint extends java.rmi.Remote{
          
          
           public void addItem(ItemDetails item ,String Category)throws RemoteException;
          
           public void addCategory(String name,String desc)throws RemoteException;
          
           public Status getStatus()throws RemoteException; <---the issue !
          
           public void changeStatus(String cat,String status)throws RemoteException;
          }
          


          server wsdl :
          <?xml version="1.0" encoding="UTF-8"?>
          <wsdl:definitions targetNamespace="http://prj.service.admin/ws4ee"
          xmlns="http://schemas.xmlsoap.org/wsdl/"
          xmlns:apachesoap="http://xml.apache.org/xml-soap"
          xmlns:impl="http://prj.service.admin/ws4ee"
          xmlns:intf="http://prj.service.admin/ws4ee"
          xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:tns1="http://prj.ejb.utils"
          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
          xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          
           <wsdl:types>
           <schema targetNamespace="http://prj.ejb.utils" xmlns="http://www.w3.org/2001/XMLSchema">
           <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
           <complexType name="ItemDetails">
           <sequence>
           <element name="title" nillable="true" type="xsd:string"/>
           <element name="body" nillable="true" type="xsd:string"/>
           <element name="author" nillable="true" type="xsd:string"/>
           </sequence>
           </complexType>
           <complexType name="Status">
           <sequence>
           <element name="categories" nillable="true" type="impl:ArrayOf_xsd_string"/>
           <element name="items" nillable="true" type="impl:ArrayOf_tns1_ItemDetails"/>
           </sequence>
           </complexType>
           </schema>
           <schema targetNamespace="http://prj.service.admin/ws4ee" xmlns="http://www.w3.org/2001/XMLSchema">
           <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
          
           <complexType name="ArrayOf_tns1_ItemDetails">
           <complexContent>
           <restriction base="soapenc:Array">
           <attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:ItemDetails[]"/>
           </restriction>
           </complexContent>
           </complexType>
          
           <complexType name="ArrayOf_xsd_string">
           <complexContent>
           <restriction base="soapenc:Array">
           <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
           </restriction>
           </complexContent>
           </complexType>
          
           </schema>
           </wsdl:types>
          
           <wsdl:message name="getStatusResponse">
          
           <wsdl:part name="getStatusReturn" type="tns1:Status"/>
          
           </wsdl:message>
          
           <wsdl:message name="addCategoryRequest">
          
           <wsdl:part name="in0" type="xsd:string"/>
          
           <wsdl:part name="in1" type="xsd:string"/>
          
           </wsdl:message>
          
           <wsdl:message name="getStatusRequest">
          
           </wsdl:message>
          
           <wsdl:message name="addCategoryResponse">
          
           </wsdl:message>
          
           <wsdl:message name="changeStatusRequest">
          
           <wsdl:part name="in0" type="xsd:string"/>
          
           <wsdl:part name="in1" type="xsd:string"/>
          
           </wsdl:message>
          
           <wsdl:message name="addItemResponse">
          
           </wsdl:message>
          
           <wsdl:message name="addItemRequest">
          
           <wsdl:part name="in2" type="tns1:ItemDetails"/>
          
           <wsdl:part name="in1" type="xsd:string"/>
          
           </wsdl:message>
          
           <wsdl:message name="changeStatusResponse">
          
           </wsdl:message>
          
           <wsdl:portType name="NewsAdminEndpoint">
          
           <wsdl:operation name="addCategory" parameterOrder="in0 in1">
          
           <wsdl:input message="impl:addCategoryRequest" name="addCategoryRequest"/>
          
           <wsdl:output message="impl:addCategoryResponse" name="addCategoryResponse"/>
          
           </wsdl:operation>
          
           <wsdl:operation name="changeStatus" parameterOrder="in0 in1">
          
           <wsdl:input message="impl:changeStatusRequest" name="changeStatusRequest"/>
          
           <wsdl:output message="impl:changeStatusResponse" name="changeStatusResponse"/>
          
           </wsdl:operation>
          
           <wsdl:operation name="addItem" parameterOrder="in2 in1">
          
           <wsdl:input message="impl:addItemRequest" name="addItemRequest"/>
          
           <wsdl:output message="impl:addItemResponse" name="addItemResponse"/>
          
           </wsdl:operation>
          
           <wsdl:operation name="getStatus">
          
           <wsdl:input message="impl:getStatusRequest" name="getStatusRequest"/>
          
           <wsdl:output message="impl:getStatusResponse" name="getStatusResponse"/>
          
           </wsdl:operation>
          
           </wsdl:portType>
          
           <wsdl:binding name="NewsAdminPortSoapBinding" type="impl:NewsAdminEndpoint">
          
           <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
          
           <wsdl:operation name="addCategory">
          
           <wsdlsoap:operation soapAction=""/>
          
           <wsdl:input name="addCategoryRequest">
          
           <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
          
           </wsdl:input>
          
           <wsdl:output name="addCategoryResponse">
          
           <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
          
           </wsdl:output>
          
           </wsdl:operation>
          
           <wsdl:operation name="changeStatus">
          
           <wsdlsoap:operation soapAction=""/>
          
           <wsdl:input name="changeStatusRequest">
          
           <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
          
           </wsdl:input>
          
           <wsdl:output name="changeStatusResponse">
          
           <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
          
           </wsdl:output>
          
           </wsdl:operation>
          
           <wsdl:operation name="addItem">
          
           <wsdlsoap:operation soapAction=""/>
          
           <wsdl:input name="addItemRequest">
          
           <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
          
           </wsdl:input>
          
           <wsdl:output name="addItemResponse">
          
           <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
          
           </wsdl:output>
          
           </wsdl:operation>
          
           <wsdl:operation name="getStatus">
          
           <wsdlsoap:operation soapAction=""/>
          
           <wsdl:input name="getStatusRequest">
          
           <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
          
           </wsdl:input>
          
           <wsdl:output name="getStatusResponse">
          
           <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
          
           </wsdl:output>
          
           </wsdl:operation>
          
           </wsdl:binding>
          
           <wsdl:service name="NewsAdminService">
          
           <wsdl:port binding="impl:NewsAdminPortSoapBinding" name="NewsAdminPort">
          
           <wsdlsoap:address location="http://localhost:8080/news/service"/>
          
           </wsdl:port>
          
           </wsdl:service>
          
          </wsdl:definitions>
          


          wsdd:
          <deployment
           xmlns='http://xml.apache.org/axis/wsdd/'
           xmlns:java='http://xml.apache.org/axis/wsdd/providers/java'
           xmlns:soap='http://schemas.xmlsoap.org/soap/encoding/'
           xmlns:xsi='http://www.w3.org/2000/10/XMLSchema-instance'
           xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
          
          <service name='News Admin Service' style='rpc' use='literal' provider='Handler'>
          
           <parameter name='webservice-identifier' value='NewsAdminService.war#NewsAdminPort' />
           <parameter name='handlerClass' value='org.jboss.webservice.server.InvokerProviderJSE' />
          
           <operation name='changeStatus' qname='ns1:changeStatus' xmlns:ns1='http://prj.service.admin/ws4ee' >
           <parameter name='in0' qname='in0' mode='IN' type='xsd:string' />
           <parameter name='in1' qname='in1' mode='IN' type='xsd:string' />
           </operation>
           <operation name='getStatus' qname='ns1:getStatus' returnQName='getStatusReturn' returnType='ns2:Status' xmlns:ns1='http://prj.service.admin/ws4ee' xmlns:ns2='http://prj.ejb.utils' >
           </operation>
           <operation name='addItem' qname='ns1:addItem' xmlns:ns1='http://prj.service.admin/ws4ee' >
           <parameter name='in2' qname='in2' mode='IN' type='ns2:ItemDetails' xmlns:ns2='http://prj.ejb.utils' />
           <parameter name='in1' qname='in1' mode='IN' type='xsd:string' />
           </operation>
           <operation name='addCategory' qname='ns1:addCategory' xmlns:ns1='http://prj.service.admin/ws4ee' >
           <parameter name='in0' qname='in0' mode='IN' type='xsd:string' />
           <parameter name='in1' qname='in1' mode='IN' type='xsd:string' />
           </operation>
          
           <typeMapping
           qname='ns1:ItemDetails' xmlns:ns1='http://prj.ejb.utils'
           type='java:prj.ejb.utils.ItemDetails'
           serializer='org.apache.axis.encoding.ser.BeanSerializerFactory'
           deserializer='org.apache.axis.encoding.ser.BeanDeserializerFactory'
           encodingStyle=''
           />
           <typeMapping
           qname='ns1:Status' xmlns:ns1='http://prj.ejb.utils'
           type='java:prj.ejb.utils.Status'
           serializer='org.apache.axis.encoding.ser.BeanSerializerFactory'
           deserializer='org.apache.axis.encoding.ser.BeanDeserializerFactory'
           encodingStyle=''
           />
          
          </service>
          </deployment>
          


          axis debuged log's last rows:
          2004-09-11 16:32:33,992 DEBUG [org.apache.axis.MessagePart] Enter: SOAPPart::getAsString
          2004-09-11 16:32:33,992 DEBUG [org.apache.axis.MessagePart] Exit: SOAPPart::getAsString(): <?xml version="1.0" encoding="UTF-8"?>
          <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <soapenv:Body>
           <getStatusResponse xmlns="http://prj.service.admin/ws4ee">
           <getStatusReturn xmlns="">
           <categories>news enabled</categories>
           <categories>entertainment enabled</categories>
           <categories>health enabled</categories>
           <categories>movies enabled</categories>
           <items>
           <title>title 1</title>
           <author>kave shafran</author>
           <body>body 1</body>
           </items>
           <items>
           <title>title 2</title>
           <author>matan</author>
           <body>body 2</body>
           </items>
          
           </getStatusReturn>
           </getStatusResponse>
           </soapenv:Body>
          </soapenv:Envelope>
          2004-09-11 16:32:33,992 DEBUG [org.apache.axis.transport.http.AxisServlet] Response sent.
          2004-09-11 16:32:33,992 DEBUG [org.apache.axis.transport.http.AxisServlet] Exit: doPost()
          2004-09-11 16:32:33,992 DEBUG [org.apache.axis.TIME] axisServlet.doPost: "" pre=4 invoke=153 post=245 send=0 News Admin Service.getStatus
          


          the client exception :

          [java] creating stub
          
           [java] properties set
          
           [java] got endpoint class
          
           [java] getting status
          
           [java] Runtime exception; nested exception is:
          
           [java] java.rmi.RemoteException: Runtime exception; nested exception is:
          
           [java] unexpected element name: expected=items, actual=categories
          
           [java] unexpected element name: expected=items, actual=categories
          
           [java] at com.sun.xml.rpc.client.StreamingSender._handleRuntimeExceptionInSend(Streaming
          
          Sender.java:248)
          
           [java] at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:230)
          
           [java] at stubs.NewsAdminEndpoint_Stub.getStatus(NewsAdminEndpoint_Stub.java:167)
          
           [java] at stubs.testClient.main(Unknown Source)
          
           [java] Caused by: unexpected element name: expected=items, actual=categories
          
           [java] at stubs.Status_LiteralSerializer.doDeserialize(Status_LiteralSerializer.java:71)
          
          
          
           [java] at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.internalDeseriali
          
          ze(LiteralObjectSerializerBase.java:183)
          
           [java] at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.deserialize(Liter
          
          alObjectSerializerBase.java:95)
          
           [java] at stubs.NewsAdminEndpoint_getStatus_ResponseStruct_LiteralSerializer.doDeseriali
          
          ze(NewsAdminEndpoint_getStatus_ResponseStruct_LiteralSerializer.java:50)
          
           [java] at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.internalDeseriali
          
          ze(LiteralObjectSerializerBase.java:183)
          
           [java] at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.deserialize(Liter
          
          alObjectSerializerBase.java:95)
          
           [java] at stubs.NewsAdminEndpoint_Stub._deserialize_getStatus(NewsAdminEndpoint_Stub.jav
          
          a:300)
          
           [java] at stubs.NewsAdminEndpoint_Stub._readFirstBodyElement(NewsAdminEndpoint_Stub.java
          
          :258)
          
           [java] at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:158)
          
           [java] ... 2 more
          
          


          • 2. Re: descriptors changes from rpc/lit - doc/lit
            thomas.diesler

            You cannot use wsdl2java with JBossWS. A portable ws client deployment cannot rely on code generated be some propriatory soap stack like axis.

            Use POJOs for your data transfer.

            • 3. Re: descriptors changes from rpc/lit - doc/lit
              ilays

              well tdiesler the thing is when i watched the debuged log i could see the serevr sent :
              .

              ........
              <items>
               <item>
               <item>
              </items>
              .........
              <reports>
              ...........
              </reports>


              instead of :

              <reports>
              ........
              </reports>
              ......
              <items>
               <item>
               <item>
              </items>


              thats why the child element is not expected i tried to make changes in the wsdl and rebuild the classes but.......nothing


              • 4. Re: descriptors changes from rpc/lit - doc/lit
                thomas.diesler

                Show me the Service Endpoint Interface, the server side wsdl, and the generated wsdd from the data/wsdl directory.

                Thanks

                • 5. Re: descriptors changes from rpc/lit - doc/lit
                  ilays

                  as u asked :
                  please notice this example refer to a rpc/lit service
                  also creating the same problem,
                  service is packed in a .war
                  i also tried to change the sequence in the wsdl ..didnt help

                  SEI :

                  package prj.service.admin;
                  import prj.ejb.utils.*;
                  import java.util.*;
                  
                  import java.rmi.RemoteException;
                  
                  public interface NewsAdminEndpoint extends java.rmi.Remote{
                  
                  
                   public void addItem(ItemDetails item ,String Category)throws RemoteException;
                  
                   public void addCategory(String name,String desc)throws RemoteException;
                  
                   public Status getStatus()throws RemoteException; <---the issue !
                  
                   public void changeStatus(String cat,String status)throws RemoteException;
                  }
                  


                  server wsdl :
                  <?xml version="1.0" encoding="UTF-8"?>
                  <wsdl:definitions targetNamespace="http://prj.service.admin/ws4ee"
                  xmlns="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:apachesoap="http://xml.apache.org/xml-soap"
                  xmlns:impl="http://prj.service.admin/ws4ee"
                  xmlns:intf="http://prj.service.admin/ws4ee"
                  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
                  xmlns:tns1="http://prj.ejb.utils"
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                  
                   <wsdl:types>
                   <schema targetNamespace="http://prj.ejb.utils" xmlns="http://www.w3.org/2001/XMLSchema">
                   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
                   <complexType name="ItemDetails">
                   <sequence>
                   <element name="title" nillable="true" type="xsd:string"/>
                   <element name="body" nillable="true" type="xsd:string"/>
                   <element name="author" nillable="true" type="xsd:string"/>
                   </sequence>
                   </complexType>
                   <complexType name="Status">
                   <sequence>
                   <element name="categories" nillable="true" type="impl:ArrayOf_xsd_string"/>
                   <element name="items" nillable="true" type="impl:ArrayOf_tns1_ItemDetails"/>
                   </sequence>
                   </complexType>
                   </schema>
                   <schema targetNamespace="http://prj.service.admin/ws4ee" xmlns="http://www.w3.org/2001/XMLSchema">
                   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
                  
                   <complexType name="ArrayOf_tns1_ItemDetails">
                   <complexContent>
                   <restriction base="soapenc:Array">
                   <attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:ItemDetails[]"/>
                   </restriction>
                   </complexContent>
                   </complexType>
                  
                   <complexType name="ArrayOf_xsd_string">
                   <complexContent>
                   <restriction base="soapenc:Array">
                   <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
                   </restriction>
                   </complexContent>
                   </complexType>
                  
                   </schema>
                   </wsdl:types>
                  
                   <wsdl:message name="getStatusResponse">
                  
                   <wsdl:part name="getStatusReturn" type="tns1:Status"/>
                  
                   </wsdl:message>
                  
                   <wsdl:message name="addCategoryRequest">
                  
                   <wsdl:part name="in0" type="xsd:string"/>
                  
                   <wsdl:part name="in1" type="xsd:string"/>
                  
                   </wsdl:message>
                  
                   <wsdl:message name="getStatusRequest">
                  
                   </wsdl:message>
                  
                   <wsdl:message name="addCategoryResponse">
                  
                   </wsdl:message>
                  
                   <wsdl:message name="changeStatusRequest">
                  
                   <wsdl:part name="in0" type="xsd:string"/>
                  
                   <wsdl:part name="in1" type="xsd:string"/>
                  
                   </wsdl:message>
                  
                   <wsdl:message name="addItemResponse">
                  
                   </wsdl:message>
                  
                   <wsdl:message name="addItemRequest">
                  
                   <wsdl:part name="in2" type="tns1:ItemDetails"/>
                  
                   <wsdl:part name="in1" type="xsd:string"/>
                  
                   </wsdl:message>
                  
                   <wsdl:message name="changeStatusResponse">
                  
                   </wsdl:message>
                  
                   <wsdl:portType name="NewsAdminEndpoint">
                  
                   <wsdl:operation name="addCategory" parameterOrder="in0 in1">
                  
                   <wsdl:input message="impl:addCategoryRequest" name="addCategoryRequest"/>
                  
                   <wsdl:output message="impl:addCategoryResponse" name="addCategoryResponse"/>
                  
                   </wsdl:operation>
                  
                   <wsdl:operation name="changeStatus" parameterOrder="in0 in1">
                  
                   <wsdl:input message="impl:changeStatusRequest" name="changeStatusRequest"/>
                  
                   <wsdl:output message="impl:changeStatusResponse" name="changeStatusResponse"/>
                  
                   </wsdl:operation>
                  
                   <wsdl:operation name="addItem" parameterOrder="in2 in1">
                  
                   <wsdl:input message="impl:addItemRequest" name="addItemRequest"/>
                  
                   <wsdl:output message="impl:addItemResponse" name="addItemResponse"/>
                  
                   </wsdl:operation>
                  
                   <wsdl:operation name="getStatus">
                  
                   <wsdl:input message="impl:getStatusRequest" name="getStatusRequest"/>
                  
                   <wsdl:output message="impl:getStatusResponse" name="getStatusResponse"/>
                  
                   </wsdl:operation>
                  
                   </wsdl:portType>
                  
                   <wsdl:binding name="NewsAdminPortSoapBinding" type="impl:NewsAdminEndpoint">
                  
                   <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
                  
                   <wsdl:operation name="addCategory">
                  
                   <wsdlsoap:operation soapAction=""/>
                  
                   <wsdl:input name="addCategoryRequest">
                  
                   <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
                  
                   </wsdl:input>
                  
                   <wsdl:output name="addCategoryResponse">
                  
                   <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
                  
                   </wsdl:output>
                  
                   </wsdl:operation>
                  
                   <wsdl:operation name="changeStatus">
                  
                   <wsdlsoap:operation soapAction=""/>
                  
                   <wsdl:input name="changeStatusRequest">
                  
                   <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
                  
                   </wsdl:input>
                  
                   <wsdl:output name="changeStatusResponse">
                  
                   <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
                  
                   </wsdl:output>
                  
                   </wsdl:operation>
                  
                   <wsdl:operation name="addItem">
                  
                   <wsdlsoap:operation soapAction=""/>
                  
                   <wsdl:input name="addItemRequest">
                  
                   <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
                  
                   </wsdl:input>
                  
                   <wsdl:output name="addItemResponse">
                  
                   <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
                  
                   </wsdl:output>
                  
                   </wsdl:operation>
                  
                   <wsdl:operation name="getStatus">
                  
                   <wsdlsoap:operation soapAction=""/>
                  
                   <wsdl:input name="getStatusRequest">
                  
                   <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
                  
                   </wsdl:input>
                  
                   <wsdl:output name="getStatusResponse">
                  
                   <wsdlsoap:body namespace="http://prj.service.admin/ws4ee" use="literal"/>
                  
                   </wsdl:output>
                  
                   </wsdl:operation>
                  
                   </wsdl:binding>
                  
                   <wsdl:service name="NewsAdminService">
                  
                   <wsdl:port binding="impl:NewsAdminPortSoapBinding" name="NewsAdminPort">
                  
                   <wsdlsoap:address location="http://localhost:8080/news/service"/>
                  
                   </wsdl:port>
                  
                   </wsdl:service>
                  
                  </wsdl:definitions>
                  


                  wsdd:
                  <deployment
                   xmlns='http://xml.apache.org/axis/wsdd/'
                   xmlns:java='http://xml.apache.org/axis/wsdd/providers/java'
                   xmlns:soap='http://schemas.xmlsoap.org/soap/encoding/'
                   xmlns:xsi='http://www.w3.org/2000/10/XMLSchema-instance'
                   xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
                  
                  <service name='News Admin Service' style='rpc' use='literal' provider='Handler'>
                  
                   <parameter name='webservice-identifier' value='NewsAdminService.war#NewsAdminPort' />
                   <parameter name='handlerClass' value='org.jboss.webservice.server.InvokerProviderJSE' />
                  
                   <operation name='changeStatus' qname='ns1:changeStatus' xmlns:ns1='http://prj.service.admin/ws4ee' >
                   <parameter name='in0' qname='in0' mode='IN' type='xsd:string' />
                   <parameter name='in1' qname='in1' mode='IN' type='xsd:string' />
                   </operation>
                   <operation name='getStatus' qname='ns1:getStatus' returnQName='getStatusReturn' returnType='ns2:Status' xmlns:ns1='http://prj.service.admin/ws4ee' xmlns:ns2='http://prj.ejb.utils' >
                   </operation>
                   <operation name='addItem' qname='ns1:addItem' xmlns:ns1='http://prj.service.admin/ws4ee' >
                   <parameter name='in2' qname='in2' mode='IN' type='ns2:ItemDetails' xmlns:ns2='http://prj.ejb.utils' />
                   <parameter name='in1' qname='in1' mode='IN' type='xsd:string' />
                   </operation>
                   <operation name='addCategory' qname='ns1:addCategory' xmlns:ns1='http://prj.service.admin/ws4ee' >
                   <parameter name='in0' qname='in0' mode='IN' type='xsd:string' />
                   <parameter name='in1' qname='in1' mode='IN' type='xsd:string' />
                   </operation>
                  
                   <typeMapping
                   qname='ns1:ItemDetails' xmlns:ns1='http://prj.ejb.utils'
                   type='java:prj.ejb.utils.ItemDetails'
                   serializer='org.apache.axis.encoding.ser.BeanSerializerFactory'
                   deserializer='org.apache.axis.encoding.ser.BeanDeserializerFactory'
                   encodingStyle=''
                   />
                   <typeMapping
                   qname='ns1:Status' xmlns:ns1='http://prj.ejb.utils'
                   type='java:prj.ejb.utils.Status'
                   serializer='org.apache.axis.encoding.ser.BeanSerializerFactory'
                   deserializer='org.apache.axis.encoding.ser.BeanDeserializerFactory'
                   encodingStyle=''
                   />
                  
                  </service>
                  </deployment>
                  


                  axis debuged log's last rows:
                  2004-09-11 16:32:33,992 DEBUG [org.apache.axis.MessagePart] Enter: SOAPPart::getAsString
                  2004-09-11 16:32:33,992 DEBUG [org.apache.axis.MessagePart] Exit: SOAPPart::getAsString(): <?xml version="1.0" encoding="UTF-8"?>
                  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                   <soapenv:Body>
                   <getStatusResponse xmlns="http://prj.service.admin/ws4ee">
                   <getStatusReturn xmlns="">
                   <categories>news enabled</categories>
                   <categories>entertainment enabled</categories>
                   <categories>health enabled</categories>
                   <categories>movies enabled</categories>
                   <items>
                   <title>title 1</title>
                   <author>kave shafran</author>
                   <body>body 1</body>
                   </items>
                   <items>
                   <title>title 2</title>
                   <author>matan</author>
                   <body>body 2</body>
                   </items>
                  
                   </getStatusReturn>
                   </getStatusResponse>
                   </soapenv:Body>
                  </soapenv:Envelope>
                  2004-09-11 16:32:33,992 DEBUG [org.apache.axis.transport.http.AxisServlet] Response sent.
                  2004-09-11 16:32:33,992 DEBUG [org.apache.axis.transport.http.AxisServlet] Exit: doPost()
                  2004-09-11 16:32:33,992 DEBUG [org.apache.axis.TIME] axisServlet.doPost: "" pre=4 invoke=153 post=245 send=0 News Admin Service.getStatus
                  


                  the client exception :

                  [java] creating stub
                  
                   [java] properties set
                  
                   [java] got endpoint class
                  
                   [java] getting status
                  
                   [java] Runtime exception; nested exception is:
                  
                   [java] java.rmi.RemoteException: Runtime exception; nested exception is:
                  
                   [java] unexpected element name: expected=items, actual=categories
                  
                   [java] unexpected element name: expected=items, actual=categories
                  
                   [java] at com.sun.xml.rpc.client.StreamingSender._handleRuntimeExceptionInSend(Streaming
                  
                  Sender.java:248)
                  
                   [java] at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:230)
                  
                   [java] at stubs.NewsAdminEndpoint_Stub.getStatus(NewsAdminEndpoint_Stub.java:167)
                  
                   [java] at stubs.testClient.main(Unknown Source)
                  
                   [java] Caused by: unexpected element name: expected=items, actual=categories
                  
                   [java] at stubs.Status_LiteralSerializer.doDeserialize(Status_LiteralSerializer.java:71)
                  
                  
                  
                   [java] at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.internalDeseriali
                  
                  ze(LiteralObjectSerializerBase.java:183)
                  
                   [java] at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.deserialize(Liter
                  
                  alObjectSerializerBase.java:95)
                  
                   [java] at stubs.NewsAdminEndpoint_getStatus_ResponseStruct_LiteralSerializer.doDeseriali
                  
                  ze(NewsAdminEndpoint_getStatus_ResponseStruct_LiteralSerializer.java:50)
                  
                   [java] at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.internalDeseriali
                  
                  ze(LiteralObjectSerializerBase.java:183)
                  
                   [java] at com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.deserialize(Liter
                  
                  alObjectSerializerBase.java:95)
                  
                   [java] at stubs.NewsAdminEndpoint_Stub._deserialize_getStatus(NewsAdminEndpoint_Stub.jav
                  
                  a:300)
                  
                   [java] at stubs.NewsAdminEndpoint_Stub._readFirstBodyElement(NewsAdminEndpoint_Stub.java
                  
                  :258)
                  
                   [java] at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:158)
                  
                   [java] ... 2 more
                  
                  


                  • 6. Re: descriptors changes from rpc/lit - doc/lit
                    thomas.diesler

                    Ok, a possible reason is that the BeanSerializer