You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Nikunj Trivedi <ni...@gmail.com> on 2006/02/16 13:49:23 UTC

Axis Bug? Returning array of compley type. hot deployment not possible

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