Thanks Xinjun.But the interesting thing is for non array types, the soap message carries the types. And for Array types, with RPC encoding the type information is carried. Only with document/literal/wrapped the type information is left out for arrays.
I will make the change as xsd:anyType[] and let you know. Regards, Ravi Xinjun Chen wrote:
Hi Ravi,I have also run into "No deserializer for..." exception before, but yours is a little different from mine. After look into your wsdl, I think the problem lies in the "value" element. Your client does not know how to deserialize the returned element <value><value>one</value> <value>two</value> </value>How can you expect Axis understand the returned XML without given a schema for it? I don't think there is a solution for deserialization of universal Object or anyType unless you use Message style operation. It means you treat the response as a Message, then your client program consumes the XML message. In this way, in fact your client still needs to know the schema of the message. Regards,XinjunOn 5/26/06, *Ravi Krishnamurthy* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:XinJun/Anne: I was monitoring the soap message using the tcp monitor. The soapresponse for the RPC is as below: <?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv= "http://schemas.xmlsoap.org/soap/envelope/" <http://schemas.xmlsoap.org/soap/envelope/> xmlns:xsd="http://www.w3.org/2001/XMLSchema" <http://www.w3.org/2001/XMLSchema> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <http://www.w3.org/2001/XMLSchema-instance>> <soapenv:Body> <ns1:getSimpleBeanResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" <http://schemas.xmlsoap.org/soap/encoding/> xmlns:ns1="http://testanytyperpc.webservice.com" <http://testanytyperpc.webservice.com/>> <getSimpleBeanReturn href="#id0"/> </ns1:getSimpleBeanResponse> <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/" <http://schemas.xmlsoap.org/soap/encoding/> xsi:type="ns2:SimpleJavaBeanRPC" xmlns:soapenc= "http://schemas.xmlsoap.org/soap/encoding/" <http://schemas.xmlsoap.org/soap/encoding/> xmlns:ns2="http://testanytyperpc.webservice.com" <http://testanytyperpc.webservice.com/>> <name xsi:type="xsd:string" xsi:nil="true"/> <value soapenc:arrayType="xsd:string[2]" xsi:type="soapenc:Array"> <value xsi:type="xsd:string">one</value> <value xsi:type="xsd:string">two</value> </value> </multiRef> </soapenv:Body> </soapenv:Envelope> The soap response for the doc/lit/wrapped is as below: <?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv= "http://schemas.xmlsoap.org/soap/envelope/" <http://schemas.xmlsoap.org/soap/envelope/> xmlns:xsd="http://www.w3.org/2001/XMLSchema" <http://www.w3.org/2001/XMLSchema> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <http://www.w3.org/2001/XMLSchema-instance>> <soapenv:Body> <getSimpleBeanResponse xmlns="http://testanytype.webservice.com" <http://testanytype.webservice.com/>> <getSimpleBeanReturn> <name xsi:nil="true"/> <value> <value>one</value> <value>two</value> </value> </getSimpleBeanReturn> </getSimpleBeanResponse> </soapenv:Body> </soapenv:Envelope> Interestingly the value tag does not contain the type information with the docl/lit/wrapped but in the rpc/encoded it does. Any ideas are welcome. Also since my webservice needed to be accessed by the .NET client, I tried to use soap/encoded since it worked but when I used visual studio 2005 found out when I send String[2}, there is an third element that comes with value null. Looks like the VB client is added one more index with value null and my webservice throws NullPointer since the null valeu is never expected. Regards,RaviRavi Krishnamurthy wrote:XinJun: The exception stack trace on the client side is as below: AxisFault faultCode: { http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXException: No deserializer for { http://www.w3.org/2001/XMLSchema}anyType faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/ <http://xml.apache.org/axis/>}stackTrace:org.xml.sax.SAXException: No deserializer for {http://www.w3.org/2001/XMLSchema}anyType at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:314) at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035) at org.apache.axis.message.SAX2EventRecorder.replay (SAX2EventRecorder.java:165) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236) at org.apache.axis.message.RPCElement.getParams (RPCElement.java:384) at org.apache.axis.client.Call.invoke(Call.java:2467) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at com.webservice.testanytype.TestAnyTypeSoapBindingStub.getSimpleBean (TestAnyTypeSoapBindingStub.java:191) at com.webservice.testanytype.AnyTypeArrayTestServiceTestCase.test2TestAnyTypeGetSimpleBean(AnyTypeArrayTestServiceTestCase.java:61) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke (Method.java:324) at junit.framework.TestCase.runTest(TestCase.java:216) at junit.framework.TestCase.runBare(TestCase.java:188) at junit.framework.TestResult$1.protect(TestResult.java:150) at junit.framework.TestResult.runProtected (TestResult.java:168) at junit.framework.TestResult.run(TestResult.java:153) at junit.framework.TestCase.run(TestCase.java:179) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java :478) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) { http://xml.apache.org/axis/}hostname:chennai org.xml.sax.SAXException: No deserializer for {http://www.w3.org/2001/XMLSchema <http://www.w3.org/2001/XMLSchema>}anyType at org.apache.axis.AxisFault.makeFault(AxisFault.java:101) at org.apache.axis.client.Call.invoke(Call.java:2470) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke (Call.java:1812) at com.webservice.testanytype.TestAnyTypeSoapBindingStub.getSimpleBean(TestAnyTypeSoapBindingStub.java:191) at com.webservice.testanytype.AnyTypeArrayTestServiceTestCase.test2TestAnyTypeGetSimpleBean (AnyTypeArrayTestServiceTestCase.java:61) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at junit.framework.TestCase.runTest(TestCase.java:216) at junit.framework.TestCase.runBare(TestCase.java:188) at junit.framework.TestResult$1.protect(TestResult.java:150) at junit.framework.TestResult.runProtected(TestResult.java:168) at junit.framework.TestResult.run(TestResult.java:153) at junit.framework.TestCase.run (TestCase.java:179) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Caused by: org.xml.sax.SAXException: No deserializer for { http://www.w3.org/2001/XMLSchema}anyType at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:314) at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java :1035) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) at org.apache.axis.message.RPCElement.deserialize (RPCElement.java:236) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384) at org.apache.axis.client.Call.invoke(Call.java:2467) ... 17 more Thanks, Ravi Ravi Krishnamurthy wrote:Hello XinJun: I have attached the zip file called testanytype.zip that contains the wsdl and also the testcase generated by the axis wsdl2java. Client Program: Please look at the file: AnyTypeArrayTestServiceTestCase method: test2TestAnyTypeGetSimpleBean() wsdl part of the program should refer to the line 70 in TestAnytype.wsdl and eventually to the definition of the SimpleBean which is line 14: <complexType name="SimpleJavaBean"> <sequence> <element name="name" nillable="true" type="xsd:string"/> <element name="value" nillable="true" type="xsd:anyType"/> </sequence> </complexType> The server.confif that describes the services looks like below: <service name="TestAnyType" provider="java:RPC" style="wrapped" use="literal"> <namespace>http://testanytype.webservice.com <http://testanytype.webservice.com/></namespace> <parameter name="allowedMethods" value="*"/> <parameter name="scope" value="request"/> <parameter name="className" value="test.AnyTypeArrayTest"/> <beanMapping languageSpecificType="java: test.SimpleBean" xmlns:ns="http://testanytype.webservice.com" <http://testanytype.webservice.com/> qname="ns:SimpleJavaBean"/> </service> Also I ahve attached the zip file test.zip that contains the webservice source file: AnyTypeArrayTest and the java bean file SimpleBean. Eventually I want to use this webservice pblished using axis from a .NET client. Thanks for your help in advance, Ravi Xinjun Chen wrote:Hi Ravi,Can you provide relevant part of WSDL and client code? Regards,XinjunOn 5/25/06, *Anne Thomas Manes* <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote: Perhaps you need Object[] rather than Object.Anne On 5/25/06, *Hariharasudhan.D Dhakshinamoorthy* < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote: Ravi , i too have the same problem , could you figure out something ?On 5/25/06, *Ravi Krishnamurthy* <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote: Hello; Would be evry helpful if someone could reply this email. thanks, Ravi Ravi Krishnamurthy wrote:More information: The exception that I mentioned happens only if thewebservice is adocument/literal/wrapped but with RPC it is fine. Is there is any known bug related towrapped/literal style, anytypeand ArrayOfString and axis1.2.1 Thanks, Ravi Ravi Krishnamurthy wrote:Hello; One of the javabean I have registered as a beanmapping has a fieldof Object type which corresponds to xsd:anyType.But the types forObject are always primitive types. As long theyare primitives itworks fine. I tried to pass String[] and itstarted to throwexception at the test cases generated bywsdl2java when I executedthe JUnit test case as below: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException <http://schemas.xmlsoap.org/soap/envelope/%7DServer.userException>faultSubcode: faultString: org.xml.sax.SAXException: Nodeserializer for{ http://www.w3.org/2001/XMLSchema}anyType<http://www.w3.org/2001/XMLSchema%7DanyType>faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException <http://xml.apache.org/axis/%7DstackTrace:org.xml.sax.SAXException>:No deserializer for {http://www.w3.org/2001/XMLSchema}anyType <http://www.w3.org/2001/XMLSchema%7DanyType>atorg.apache.axis.encoding.ser.BeanDeserializer.onStartChild (BeanDeserializer.java:314)atorg.apache.axis.encoding.DeserializationContext.startElement (DeserializationContext.java:1035)at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)atorg.apache.axis.message.MessageElement.publishToHandler (MessageElement.java:1141)at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)atorg.apache.axis.message.RPCElement.getParams(RPCElement.java:384)atorg.apache.axis.client.Call.invoke(Call.java:2448)at org.apache.axis.client.Call.invoke(Call.java:2347)atorg.apache.axis.client.Call.invoke(Call.java:1804)atcom.savvion.webservice.workflow.BizLogic1SoapBindingStub.getProcessTemplateDataSlot(BizLogic1SoapBindingStub.java :1704)atcom.savvion.webservice.workflow.WorkFlowWSServiceTestCase.test20BizLogic1GetProcessTemplateDataSlot (WorkFlowWSServiceTestCase.java:457)atsun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java :25)atjava.lang.reflect.Method.invoke(Method.java:324)atjunit.framework.TestCase.runTest(TestCase.java:216)atjunit.framework.TestCase.runBare(TestCase.java :188)atjunit.framework.TestResult$1.protect(TestResult.java:150)at junit.framework.TestResult.runProtected(TestResult.java:168)atjunit.framework.TestResult.run(TestResult.java :153)atjunit.framework.TestCase.run(TestCase.java:179)atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:478)atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)atorg.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java :196){http://xml.apache.org/axis/}hostname:chennai<http://xml.apache.org/axis/%7Dhostname:chennai>The returned soap envelop looks like below: HTTP/1.1 200 OK Date: Wed, 24 May 2006 23:45:26 GMT Content-Type: text/xml; charset=utf-8 Connection: Close <?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ <http://schemas.xmlsoap.org/soap/envelope/>"xmlns:xsd=" http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance>"><soapenv:Body> <getProcessTemplateDataSlotResponse xmlns=" http://workflow.webservice.savvion.com<http://workflow.webservice.savvion.com/>"><getProcessTemplateDataSlotReturn> <choices xsi:nil="true"/> <isReadOnly>false</isReadOnly> <isWriteOnly>false</isWriteOnly> <name>listds</name> <ptid>1</ptid> <type>LIST</type> <value> <value>one</value> <value>ten</value> </value> </getProcessTemplateDataSlotReturn> </getProcessTemplateDataSlotResponse> </soapenv:Body> </soapenv:Envelope> and the xsd:anytype if for the following element: <value> <value>one</value> <value>ten</value> </value> Would appreciate any help on this. Thanks, Ravi--------------------------------------------------------------------- To unsubscribe, e-mail:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>For additional commands, e-mail:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
