axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From thomas <tburdai...@entelience.com>
Subject Deserialization problem for an inner class
Date Mon, 02 May 2005 09:02:22 GMT
Hello I have no problem for writing Java clients for "normal" beans 
returned, but, I have a problem with a bean that is an inner class.

So my bean is something like that :
package my.package;
public class FirstClass
{
	...
	
//my inner class
	public class InnerBean
	{
	....
	}
	
}

Note that FirstClass is also a a webservice class, with a method that 
will return an instance of InnerBean.

The wsdd :

<deployment
	name="authentication"
	xmlns="http://xml.apache.org/axis/wsdd/"
	xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
	xmlns:esis="urn:my.package.FirstClass"
 >
	<service name="Authentication" provider="java:RPC">
		<parameter name="className" value="my.package.FirstClass" />
		<parameter name="allowedMethods" value="*" />

		<namespace>urn:my.package.FirstClass</namespace>
<beanMapping qname="myNS:FirstClass"
			languageSpecificType="java:my.package.FirstClass$InnerBean" />

Now the client :

I declare as usual all the stuff, except for the return type :

QName qn = new QName("urn:my.package.FirstClass","InnerBean");
         
call.registerTypeMapping(my.package.FirstClass.InnerBean.class,qn,
             new 
BeanSerializerFactory(my.package.FirstClass.InnerBean.class,qn),
             new 
BeanDeserializerFactory(my.package.FirstClass.InnerBean.class,qn));
         call.setReturnType(qn);
         FirstClass.InnerBean 
beanReturned=(FirstClass.InnerBean)call.invoke(objectArray);

The problem is that there are no problems server-side, I can watch the 
SOAP message that return what i want.
Client-side, I get an exception :
org.xml.sax.SAXException: Unable to create JavaBean of type 
my.package.FirstClass$InnerBean.  Missing default constructor?  Error 
was: java.lang.InstantiationException: my.package.FirstClass$InnerBean.

(and of course, both classes FirstClass and InnerBean have a default 
constructor).

I don't know where is the problem, in the wsdd, on the client, on the 
server?


Mime
View raw message