Are you using the <beanMapping> property in server-config.wsdd file?
Without the beanmapping I get an error that it cant find a
deserializer for {urn:wedge}User. With the beanMapping property
specified (per the documentation) I get a MethodNotFoundException when
HibernateUtil is started at webapp startup. I've also tried
typeMapping (which according to the docs is the same as a beanMapping
with extra args). This is with the latest interim drop.. Axis 1.2
beta3.
Should I just downgrade to 1.1 until 1.2 is ready? I tried with 1.1
and I don't get the MethodNotFoundException, but I do get:
org.xml.sax.SAXException: Deserializing parameter 'user': could not
find deserializer for type {urn:wedge}User
I'll check to make sure my qnames and namespaces are correct.
Thanks for the info on the Set. Does that work with 1.1? I'll
definitely try it out (once I get this other problem worked out).
Thanks,
- Brent
On Tue, 3 Aug 2004 09:15:34 +0200, Maurice Marrink
<[EMAIL PROTECTED]> wrote:
> Axis can serialize (at least a few) Collections. I read somewhere it can
> handle Set and a few others I can't remember. (If I could only remember
> where I read it).
> I too use hibernate and have several Set's in my beans, axis replaces
> them underwater with an array.
> The soap output will look like this: (roles is actually a Set)
> <multiRef id="id0" soapenc:root="0"
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> xsi:type="ns1:User"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:ns1="http://www.topicus.nl/parnassys">
> <roles href="#id3" />
> </multiRef>
> <multiRef id="id3" soapenc:root="0"
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> xsi:type="soapenc:Array" soapenc:arrayType="xsd:anyType[2]"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
> <item href="#id5" />
> <item href="#id6" />
> </multiRef>
>
> the wsdl contains this element:
> <element name="roles" type="impl:Set" nillable="true"/>
>
> -----Oorspronkelijk bericht-----
> Van: Brent Johnson [mailto:[EMAIL PROTECTED]
> Verzonden: maandag 2 augustus 2004 21:35
> Aan: [EMAIL PROTECTED]
> Onderwerp: Re: Newbie: Sending/Receiving Beans with BeanSerializer
>
>
>
> Ahh.. so just return the bean that I want.. and I'm guessing I should
> use call.setReturnClass(MyBean.class) instead of setReturnType?
>
> Also.. I'm changing my beans to not use collections and use arrays
> instead. Can I use arrays of beans in my bean though? Example:
>
> public class MyBean() {
> private Attribute[] attributes;
>
> public MyBean() {
> }
>
> public Attribute[] getAttributes() { return(this.attributes); }
> public void setAttributes(Attribute[] param) { this.attributes =
> param; }
> }
>
> And the Attribute class is just a bean that has a String name, and
> String value.
>
> When I try this I get the following error:
> "org.xml.sax.SAXException: SimpleDeserializer encountered a child
> element, which is NOT expected, in something it was trying to
> deserialize."
>
> I'm using Hibernate (http://www.hibernate.org) to link two tables in a
> one-to-many relationship, and it requires that this be either a
> collection, or an array of my custom bean. If I have to I can modify
> my parent bean to contain a String[] array instead.. holding all the
> primary keys in the child database.. but this will require a little
> more "finesse" to get working correctly.
>
> Thanks for the help,
>
> - Brent
>
> ----- Original Message -----
> From: Callahan, Paul <[EMAIL PROTECTED]>
> Date: Mon, 2 Aug 2004 14:07:11 -0400
> Subject: RE: Newbie: Sending/Receiving Beans with BeanSerializer
> To: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
>
> Just make the return type of your method the class of the bean you
> want to return... Axis will serialize it on return, unless you are
> using collections or complex types.
>
> -pc
>
> -----Original Message-----
> From: Brent Johnson [mailto:[EMAIL PROTECTED]
> Sent: Monday, August 02, 2004 1:10 PM
> To: [EMAIL PROTECTED]
> Subject: Newbie: Sending/Receiving Beans with BeanSerializer
>
> I want to be able to pass a bean (lets say "Item") to my WebService
> and have a bean returned (in this case another "Item" with different
> values).
>
> I've read through the Axis documentation and it looks like its pretty
> trivial to pass a bean into the service as input using the
> BeanSerializer. This is of course assuming you aren't using any
> Collections. I'd *like* to use Collections (i.e. a Set) in my bean..
> but from searching the mailing list archive there doesnt seem to be a
> simple way to do this. I can use arrays instead of collections for
> now though.
>
> How does one go about passing a bean back to the client? The example
> in the user documentation takes a bean and just returns a String to
> the caller. How about returning a serialized bean?
>
> Thanks
>