DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10300>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10300 Bean deserialize for complex types does not work Summary: Bean deserialize for complex types does not work Product: Axis Version: beta-2 Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Normal Priority: Other Component: Basic Architecture AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I have the following type defined: public class SbTravelRequest implements Serializable { public String requestOr; public String homeCountry; public String departureLocation; public String destinationLocation; public GregorianCalendar startDate; public GregorianCalendar endDate; public String searchTypes; public String searchParams; public String searchHints; public SbSupplier[] supPliers; } and public class SbSupplier implements Serializable { public Integer searchType; public String supplierCode; public String chanNel; } The following deployment descriptor is used: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <beanMapping qname="ss:SbTravelRequest" xmlns:ss="http://www.sidestep.com/sbws" languageSpecificType="java:sidestep.search.SbTravelRequest"/> <beanMapping qname="ss:SbSupplier" xmlns:ss="http://www.sidestep.com/sbws" languageSpecificType="java:sidestep.search.SbSupplier"/> </deployment> The typemappings are added to the call properly. Everything works fine as long as the SbSupplier[] supPliers field in SbTravelRequest is set to null. When I set it to a single element array, the deserialization blows up: The SOAP message to the server: POST /sbws/jws/search.jws HTTP/1.0 Content-Length: 1688 Host: localhost Content-Type: text/xml; charset=utf-8 SOAPAction: "" <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP- ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP- ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <startSearch> <arg0 href="#id0"/> </startSearch> <multiRef id="id0" SOAP-ENC:root="0" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:SbTravelRequest" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/:encodingStyle" xmlns:ns2="http://www.sidestep.com/sbws"> <requestOr xsi:type="xsd:string">SOAP test 1</requestOr> <homeCountry xsi:type="xsd:string">US</homeCountry> <departureLocation xsi:type="xsd:string">SJC</departureLocation> <destinationLocation xsi:type="xsd:string">ATL</destinationLocation> <startDate xsi:type="xsd:dateTime">2002-08-10T13:42:24.024Z</startDate> <endDate xsi:type="xsd:dateTime">2002-06-27T13:42:24.024Z</endDate> <searchTypes xsi:type="xsd:string">AIR:RTACR</searchTypes> <searchParams xsi:nil="true"/> <searchHints xsi:nil="true"/> <supPliers xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="ns2:SbSupplier[1]"> <item href="#id1"/> </supPliers> </multiRef> <multiRef id="id1" SOAP-ENC:root="0" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:SbSupplier" xmlns:ns3="http://www.sidestep.com/sbws"> <searchType xsi:type="xsd:int">0</searchType> <supplierCode xsi:type="xsd:string">**</supplierCode> <chanNel xsi:type="xsd:string">**</chanNel> </multiRef> </SOAP-ENV:Body> </SOAP-ENV:Envelope> The generated error and stack trace: - Could not convert java.lang.Integer to bean field 'searchType', type java.lang.Integer - Exception: java.lang.NullPointerException java.lang.NullPointerException at org.apache.axis.encoding.ser.BeanPropertyTarget.set (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/encoding/ser/BeanPropertyTarget.java:130) at org.apache.axis.encoding.DeserializerImpl.valueComplete (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/encoding/DeserializerImpl.java:258) at org.apache.axis.encoding.DeserializerImpl.endElement (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/encoding/DeserializerImpl.java:504) at org.apache.axis.encoding.DeserializationContextImpl.endElement (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/encoding/DeserializationContextImpl.java:875) at org.apache.axis.message.SAX2EventRecorder.replay (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/message/SAX2EventRecorder.java:205) at org.apache.axis.message.MessageElement.publishToHandler (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/message/MessageElement.java:589) at org.apache.axis.encoding.DeserializerImpl.startElement (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/encoding/DeserializerImpl.java:370) at org.apache.axis.encoding.DeserializationContextImpl.startElement (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/encoding/DeserializationContextImpl.java:844) at org.apache.axis.message.SAX2EventRecorder.replay (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/message/SAX2EventRecorder.java:199) at org.apache.axis.message.MessageElement.publishToHandler (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/message/MessageElement.java:589) at org.apache.axis.encoding.DeserializerImpl.startElement (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/encoding/DeserializerImpl.java:370) at org.apache.axis.encoding.DeserializationContextImpl.startElement (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/encoding/DeserializationContextImpl.java:844) at org.apache.axis.message.SAX2EventRecorder.replay (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/message/SAX2EventRecorder.java:199) at org.apache.axis.message.MessageElement.publishToHandler (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/message/MessageElement.java:589) at org.apache.axis.message.RPCElement.deserialize (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/message/RPCElement.java:224) at org.apache.axis.message.RPCElement.getParams(C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/message/RPCElement.java:248) at org.apache.axis.providers.java.RPCProvider.processMessage (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/providers/java/RPCProvider.java:150) at org.apache.axis.providers.java.JavaProvider.invoke (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/providers/java/JavaProvider.java:262) at org.apache.axis.strategies.InvocationStrategy.visit (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/strategies/InvocationStrategy.java:71) at org.apache.axis.SimpleChain.doVisiting(C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/SimpleChain.java:154) at org.apache.axis.SimpleChain.invoke(C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/SimpleChain.java:121) at org.apache.axis.handlers.JWSProcessor.invokeImpl (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/handlers/JWSProcessor.java:288) at org.apache.axis.handlers.JWSProcessor.invoke(C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/handlers/JWSProcessor.java:106) at org.apache.axis.strategies.InvocationStrategy.visit (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/strategies/InvocationStrategy.java:71) at org.apache.axis.SimpleChain.doVisiting(C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/SimpleChain.java:154) at org.apache.axis.SimpleChain.invoke(C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/SimpleChain.java:121) at org.apache.axis.server.AxisServer.invoke(C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/server/AxisServer.java:288) at org.apache.axis.transport.http.AxisServlet.doPost (C:/Marcel/Src/Java/xml- axis/java/src/org/apache/axis/transport/http/AxisServlet.java:576) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke (CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke (StandardContext.java:2343) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke (ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process (HttpProcessor.java:1012) at org.apache.catalina.connector.http.HttpProcessor.run (HttpProcessor.java:1107) at java.lang.Thread.run(Thread.java:484)