Hi Rogério, I am fairly new to Axis. Could you tell me what if I use RPCHandler? Mine service deployment descriptor is like
<deployment name="defaultServerConfig" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <service name="codsig/organizer" provider="Handler" use="literal" style="document"> <parameter name="className" value="core.services.organizer.impl.Organizer"/> <wsdlFile>share/schema/codsig/organizer/Organizer_service.wsdl</wsdlFile> <parameter name="allowedMethods" value="*"/> <parameter name="handlerClass" value="org.globus.axis.providers.RPCProvider"/> <parameter name="scope" value="Application"/> <parameter name="providers" value="GetRPProvider"/> <parameter name="loadOnStartup" value="true"/> </service> </deployment> As you see, if you use doc/lit style, how to return complex types? Any changes? In fact I even cannot pass input parameter. And this problem stuck me for more than 2 weeks already. Could you help? Regards, Xinjun -----Original Message----- From: Rogério Luz [mailto:[EMAIL PROTECTED] Sent: Wed 2005-8-31 23:07 To: axis-user@ws.apache.org Subject: Re: Return type for complex types Hi Uppili Try to create a wsdd like this: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" <http://xml.apache.org/axis/wsdd/providers/java"> > <service name="YourWebServiceName" provider="java:RPC"> <parameter name="className" value="your.package.ClassName"/> <parameter name="allowedMethods" value="*"/> <beanMapping qname="myNS:YourBean" xmlns:myNS="urn:ClassName" languageSpecificType="java:your.package.YourBean"/> </service> </deployment> Deploy it then try this in your client code: QName qnYourBeanName = new QName("urn:ClassName", "YourBean"); QName qnYourBeanArr = new QName("urn:ClassName", "ArrayOf_ClassName"); call.registerTypeMapping(YourBean.class, qnYourBeanName , new org.apache.axis.encoding.ser.BeanSerializerFactory(YourBean.class, qnYourBeanName ), new org.apache.axis.encoding.ser.BeanDeserializerFactory(YourBean.class, qnYourBeanName )); call.registerTypeMapping(YourBean[].class, qnYourBeanNameArr , new org.apache.axis.encoding.ser.ArraySerializerFactory(), new org.apache.axis.encoding.ser.ArrayDeserializerFactory()); YourBean[] yba = (YourBean[]) call.invoke( new Object[] {}); This should work. Any problem let me know. Best Regards, Rogério Luz On 8/30/05, Uppili Srinivasan <[EMAIL PROTECTED]> wrote: Hi everyone, I searched the recent archives for an answer to the problem I am having but could not find one. Any help would be greatly appreciated.=20 I have a wrapped service which returns TestObject[] where TestObject is a bean with a just a String property. The WSDD entry for that is <service name=3D"Test" style=3D"wrapped"> <parameter name=3D"className" = value=3D"com.questerra.webservices.Test"/> <parameter name=3D"allowedMethods" value=3D"*"/> <beanMapping qname=3D"myNS:TestObject" xmlns:myNS=3D"http://webservices.questerra.com" languageSpecificType=3D"java:com.questerra.webservices.TestObject"/> </service> I don't have any problems in calling the service but am having problems in parsing the response. If the service returns only one object in the array and if I do the following in my client, I don't get any exceptions QName qnArr =3D new QName(" http://webservices.questerra.com <http://webservices.questerra.com/> ", "doTestResponse" ); call.setOperationStyle("wrapped"); call.registerTypeMapping(TestObject[].class, qnArr, new org.apache.axis.encoding.ser.ArraySerializerFactory(), new org.apache.axis.encoding.ser.ArrayDeserializerFactory()); call.setOperationName( "doTest" ); call.setReturnType(qnArr); But if the service returns more than one object, I am getting an AXIS fault as follows: faultCode: { http://schemas.xmlsoap.org/soap/envelope/}Server.userException < http://schemas.xmlsoap.org/soap/envelope/%7dServer.userException <http://schemas.xmlsoap.org/soap/envelope/%7dServer.userException> > faultSubcode: faultString: java.lang.ArrayStoreException faultActor: faultNode: faultDetail: { http://xml.apache.org/axis/}stackTrace:java.lang.ArrayStoreException < http://xml.apache.org/axis/%7dstackTrace:java.lang.ArrayStoreException <http://xml.apache.org/axis/%7dstackTrace:java.lang.ArrayStoreException> > at org.apache.axis.utils.JavaUtils.convert(JavaUtils.java:472) at org.apache.axis.client.Call.invoke (Call.java:2580) at org.apache.axis.client.Call.invoke(Call.java:2347) at org.apache.axis.client.Call.invoke(Call.java:1804) Thanks much in advance for any help in resolving this issue[Uppili Srinivasan] . Uppili
<<winmail.dat>>