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)

Reply via email to