Hi All,
 
When I deploy a service on Axis1.3-Tomcat5.5.15 and try to access it by any Java client(axis or weblogic) it sends wrong SOAP response message.
1) However after restarting the server it works fine. Again redeploying will give above problem.
2) Pls note that it generates identical server-config.wsdd in both cases.
3) This also happens with Tomcat 4.1 server and any Java Client.
4) This happens only when the return type is array of Complex Type.
 
Here I am simply returing array of MyBean. The style is Document-wrapped.
 
----------------It should return following response---------------
<testResponse xmlns="http://nickstrivedi.com/MyService">
            <testReturn xsi:type="ns1:MyBean" xmlns:ns1=" http://nickstrivedi.com/MyService">
               <ns1:a>a</ns1:a>
               <ns1:b>b</ns1:b>
               <ns1:c>10</ns1:c>
            </testReturn>
            <testReturn xsi:type="ns2:MyBean" xmlns:ns2=" http://nickstrivedi.com/MyService">
               <ns2:a>a</ns2:a>
               <ns2:b>b</ns2:b>
               <ns2:c>10</ns2:c>
            </testReturn>
 .....
---------------- But it returns following ------------------------
Wrapps testReturn with one more testReturn element.
<testResponse xmlns="http://nickstrivedi.com/MyService">
            <testReturn>
               <testReturn>
                  <a>a</a>
                  <b>b</b>
                  <c>10</c>
               </testReturn>
               <testReturn>
                  <a>a</a>
                  <b>b</b>
                  <c>10</c>
               </testReturn>
.......
 
 Here is the WSDD file:

<deployment

xmlns="http://xml.apache.org/axis/wsdd/"

xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

<service name="MyService" provider="java:RPC" style="wrapped" use="literal">

<parameter name="wsdlTargetNamespace" value="http://nickstrivedi.com/MyService"/>

<parameter name="wsdlServiceElement" value="MyServiceService"/>

<parameter name="schemaQualified" value="http://nickstrivedi.com/MyService"/>

<parameter name="wsdlServicePort" value="MyService"/>

<parameter name="className" value="server.MyService"/>

<parameter name="wsdlPortType" value="MyService"/>

<parameter name="typeMappingVersion" value="1.2"/>

<operation name="test" qname="operNS:test" xmlns:operNS="http://nickstrivedi.com/MyService"

returnQName="retNS:testReturn" xmlns:retNS="http://nickstrivedi.com/MyService"

returnType="rtns:ListOfMyBean" xmlns:rtns="http://nickstrivedi.com/MyService"

soapAction="" >

</operation>

<parameter name="allowedMethods" value="test"/>

<parameter name="scope" value="Request"/>

<arrayMapping

xmlns:ns="http://nickstrivedi.com/MyService"

qname="ns:ListOfMyBean"

type="java:server.MyBean[]"

languageSpecificType="java:server.MyBean[]"

innerType="ns:MyBean"

encodingStyle=""

/>

<typeMapping

xmlns:ns="http://nickstrivedi.com/MyService"

qname="ns:MyBean"

type="java:server.MyBean"

serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"

encodingStyle=""

/>

</service>

</deployment>

 
Regards
Nikunj

Reply via email to