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 Srinath K <sr...@aztecsoft.com> on 2006/08/14 09:19:32 UTC

Help with axis bean serializers

Hi,

Need some help with Axis usage..
Iam a newbie to webservices, I had exposed a ejb as a webservice on
jboss4.0.2 and used axis to do the java2wsdl and deployed the
webservice. With simple type the webservice is working fine but when one
of the method requires a java object (mine is a java bean implementing
serializable) , when I invoke the method I get an error saying
"faultString: Deserializing parameter 'org':  could not find
deserializer for type {orgmodel}orgmodel"

Please let know if iam missing anything here...

Part of wsdl file
.
.
.
 <schema targetNamespace="http://xml.apache.org/xml-soap"
xmlns="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://orgEndPoint"/>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="Vector">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="item"
type="xsd:anyType"/>
    </sequence>
   </complexType>
  </schema>
 </wsdl:types>

 <wsdl:beanMapping qname="ns:orgmodel" xmlns:ns="orgmodel"
languageSpecificType="org.OrgModel" />

 <wsdl:typeMapping qname="ns:orgmodel" xmlns:ns="orgmodel"
serializer="org.apache.axis.encoding.BeanSerializer"
deserializerFactory="org.apache.axis.encoding.BeanSerializer$BeanSerFact
ory" />

   <wsdl:message name="getServicesResponse">

      <wsdl:part name="getServicesReturn"
type="impl:ArrayOf_xsd_anyType"/>

   </wsdl:message>

   <wsdl:message name="getContactInfoResponse">

      <wsdl:part name="getContactInfoReturn"
type="impl:ArrayOf_xsd_anyType"/>

   </wsdl:message>
...

And my client code

 Call call1=(Call)service.createCall();
        System.out.println("new call..."+call1);
        QName qname=new QName("orgmodel","orgmodel");
       
       
        call1.registerTypeMapping(org.OrgModel.class,qname,
                new
org.apache.axis.encoding.ser.BeanSerializerFactory(org.OrgModel.class,qn
ame),
                new
org.apache.axis.encoding.ser.BeanDeserializerFactory(org.OrgModel.class,
qname));
       
        call1.setTargetEndpointAddress(url);
        call1.setOperationName("getServices");
        call1.addParameter("org",XMLType.AXIS_VOID,ParameterMode.IN);
        call1.setReturnClass(java.util.Collection.class);
       
       
        OrgModel model=new OrgModel();
        model.setId(1);
        model.setName("sss");
        call1.invoke(new Object[] {model});


The information contained in, or attached to, this e-mail, contains confidential information and is intended solely for the use of the individual or entity to whom they are addressed and is subject to legal privilege. If you have received this e-mail in error you should notify the sender immediately by reply e-mail, delete the message from your system and notify your system manager. Please do not copy it for any purpose, or disclose its contents to any other person. The views or opinions presented in this e-mail are solely those of the author and do not necessarily represent those of the company. The recipient should check this e-mail and any attachments for the presence of viruses. The company accepts no liability for any damage caused, directly or indirectly, by any virus transmitted in this email.

www.aztecsoft.com

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Help with axis bean serializers

Posted by Anne Thomas Manes <at...@gmail.com>.
1- you don't have org:orgmodel defined in your WSDL
2- you can't define type mappings in the WSDL. You must define them in a WSDD
3- You haven't defined the "impl:ArrayOf_xsd_anyType" in your WSDL, either.

My guess is that you didn't run java2wsdl correctly.

Anne

On 8/14/06, Srinath K <sr...@aztecsoft.com> wrote:
>
> Hi,
>
> Need some help with Axis usage..
> Iam a newbie to webservices, I had exposed a ejb as a webservice on
> jboss4.0.2 and used axis to do the java2wsdl and deployed the
> webservice. With simple type the webservice is working fine but when one
> of the method requires a java object (mine is a java bean implementing
> serializable) , when I invoke the method I get an error saying
> "faultString: Deserializing parameter 'org':  could not find
> deserializer for type {orgmodel}orgmodel"
>
> Please let know if iam missing anything here...
>
> Part of wsdl file
> .
> .
> .
>  <schema targetNamespace="http://xml.apache.org/xml-soap"
> xmlns="http://www.w3.org/2001/XMLSchema">
>    <import namespace="http://orgEndPoint"/>
>    <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
>    <complexType name="Vector">
>     <sequence>
>      <element maxOccurs="unbounded" minOccurs="0" name="item"
> type="xsd:anyType"/>
>     </sequence>
>    </complexType>
>   </schema>
>  </wsdl:types>
>
>  <wsdl:beanMapping qname="ns:orgmodel" xmlns:ns="orgmodel"
> languageSpecificType="org.OrgModel" />
>
>  <wsdl:typeMapping qname="ns:orgmodel" xmlns:ns="orgmodel"
> serializer="org.apache.axis.encoding.BeanSerializer"
> deserializerFactory="org.apache.axis.encoding.BeanSerializer$BeanSerFact
> ory" />
>
>    <wsdl:message name="getServicesResponse">
>
>       <wsdl:part name="getServicesReturn"
> type="impl:ArrayOf_xsd_anyType"/>
>
>    </wsdl:message>
>
>    <wsdl:message name="getContactInfoResponse">
>
>       <wsdl:part name="getContactInfoReturn"
> type="impl:ArrayOf_xsd_anyType"/>
>
>    </wsdl:message>
> ...
>
> And my client code
>
>  Call call1=(Call)service.createCall();
>         System.out.println("new call..."+call1);
>         QName qname=new QName("orgmodel","orgmodel");
>
>
>         call1.registerTypeMapping(org.OrgModel.class,qname,
>                 new
> org.apache.axis.encoding.ser.BeanSerializerFactory(org.OrgModel.class,qn
> ame),
>                 new
> org.apache.axis.encoding.ser.BeanDeserializerFactory(org.OrgModel.class,
> qname));
>
>         call1.setTargetEndpointAddress(url);
>         call1.setOperationName("getServices");
>         call1.addParameter("org",XMLType.AXIS_VOID,ParameterMode.IN);
>         call1.setReturnClass(java.util.Collection.class);
>
>
>         OrgModel model=new OrgModel();
>         model.setId(1);
>         model.setName("sss");
>         call1.invoke(new Object[] {model});
>
>
> The information contained in, or attached to, this e-mail, contains confidential information and is intended solely for the use of the individual or entity to whom they are addressed and is subject to legal privilege. If you have received this e-mail in error you should notify the sender immediately by reply e-mail, delete the message from your system and notify your system manager. Please do not copy it for any purpose, or disclose its contents to any other person. The views or opinions presented in this e-mail are solely those of the author and do not necessarily represent those of the company. The recipient should check this e-mail and any attachments for the presence of viruses. The company accepts no liability for any damage caused, directly or indirectly, by any virus transmitted in this email.
>
> www.aztecsoft.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org