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?
