Axis 1.3 OutOfMemory error when serializing a Java Object Graph
---------------------------------------------------------------

         Key: AXIS-2460
         URL: http://issues.apache.org/jira/browse/AXIS-2460
     Project: Apache Axis
        Type: Bug

  Components: Serialization/Deserialization  
    Versions: 1.3    
 Environment: Software: Axis 1.3, Websphere 5.1.1, Windows XP,  XALAN 2.6, Java 
VM Heap size is set at 512M, Spring 1.2, Hibernate 3, 
Hardware: Intel 2 Ghz, 1GB RAM
    Reporter: Mohit Keswani


We have created a web service which returns a big result set with 80000 
records. Each record contains First Name(Java String), Last Name (Java String), 
Account number (Java String), Open Date (java Calendar), SSN (Java String).
Once Axis tries to serialize the Java object to SOAP XML it core dumps the Java 
VM because of OutOfMemory error. 
We are using document literal encoding.

WSDL for Service 

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://service.hsa.bankserv.exante.uhg.com"; 
xmlns:apachesoap="http://xml.apache.org/xml-soap"; 
xmlns:impl="http://service.hsa.bankserv.exante.uhg.com"; 
xmlns:intf="http://service.hsa.bankserv.exante.uhg.com"; 
xmlns:tns2="http://beans.accdetails.hsa.bankserv.exante.uhg.com"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
<!--WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT)-->
 <wsdl:types>
  <schema elementFormDefault="qualified" 
targetNamespace="http://beans.accdetails.hsa.bankserv.exante.uhg.com"; 
xmlns="http://www.w3.org/2001/XMLSchema";>
   <complexType name="AccountsByMemberIDRequestBean">
    <sequence>
     <element name="branch" nillable="true" type="xsd:string"/>
     <element name="customerNumber" nillable="true" type="xsd:string"/>
     <element name="memberID" nillable="true" type="xsd:string"/>
     <element name="plan" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="AccountDetailBean">
    <sequence>
     <element name="accountNumber" nillable="true" type="xsd:string"/>
     <element name="firstName" nillable="true" type="xsd:string"/>
     <element name="lastName" nillable="true" type="xsd:string"/>
     <element name="middleInitial" nillable="true" type="xsd:string"/>
     <element name="openDate" nillable="true" type="xsd:dateTime"/>
     <element name="ssn" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="CustomerAccDtlBean">
    <sequence>
     <element maxOccurs="unbounded" name="accountDetails" nillable="true" 
type="tns2:AccountDetailBean"/>
     <element name="customerNumber" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="AccountsResponseBean">
    <sequence>
     <element name="branch" nillable="true" type="xsd:string"/>
     <element maxOccurs="unbounded" name="customerDetails" nillable="true" 
type="tns2:CustomerAccDtlBean"/>
     <element name="customerNumber" nillable="true" type="xsd:string"/>
     <element name="message" nillable="true" type="xsd:string"/>
     <element name="plan" nillable="true" type="xsd:string"/>
     <element name="ssn" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="AccountsByCustomerRequestBean">
    <sequence>
     <element name="branch" nillable="true" type="xsd:string"/>
     <element name="customerNumber" nillable="true" type="xsd:string"/>
     <element name="plan" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="AccountsByPayerRequestBean">
    <sequence>
     <element name="branch" nillable="true" type="xsd:string"/>
     <element name="plan" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
  </schema>
  <schema elementFormDefault="qualified" 
targetNamespace="http://service.hsa.bankserv.exante.uhg.com"; 
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://beans.accdetails.hsa.bankserv.exante.uhg.com"/>
   <element name="in0" type="tns2:AccountsByMemberIDRequestBean"/>
   <element name="getAccountByMemberIDReturn" type="tns2:AccountsResponseBean"/>
   <element name="in1" type="tns2:AccountsByCustomerRequestBean"/>
   <element name="getAccountsByCustomerReturn" 
type="tns2:AccountsResponseBean"/>
   <element name="in2" type="tns2:AccountsByPayerRequestBean"/>
   <element name="getAccountsByPayerReturn" type="tns2:AccountsResponseBean"/>
  </schema>
 </wsdl:types>

   <wsdl:message name="getAccountsByCustomerRequest">

      <wsdl:part element="impl:in1" name="in0"/>

   </wsdl:message>

   <wsdl:message name="getAccountsByCustomerResponse">

      <wsdl:part element="impl:getAccountsByCustomerReturn" 
name="getAccountsByCustomerReturn"/>

   </wsdl:message>

   <wsdl:message name="getAccountsByPayerResponse">

      <wsdl:part element="impl:getAccountsByPayerReturn" 
name="getAccountsByPayerReturn"/>

   </wsdl:message>

   <wsdl:message name="getAccountByMemberIDResponse">

      <wsdl:part element="impl:getAccountByMemberIDReturn" 
name="getAccountByMemberIDReturn"/>

   </wsdl:message>

   <wsdl:message name="getAccountsByPayerRequest">

      <wsdl:part element="impl:in2" name="in0"/>

   </wsdl:message>

   <wsdl:message name="getAccountByMemberIDRequest">

      <wsdl:part element="impl:in0" name="in0"/>

   </wsdl:message>

   <wsdl:portType name="AccountDetailsService">

      <wsdl:operation name="getAccountByMemberID" parameterOrder="in0">

         <wsdl:input message="impl:getAccountByMemberIDRequest" 
name="getAccountByMemberIDRequest"/>

         <wsdl:output message="impl:getAccountByMemberIDResponse" 
name="getAccountByMemberIDResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getAccountsByCustomer" parameterOrder="in0">

         <wsdl:input message="impl:getAccountsByCustomerRequest" 
name="getAccountsByCustomerRequest"/>

         <wsdl:output message="impl:getAccountsByCustomerResponse" 
name="getAccountsByCustomerResponse"/>

      </wsdl:operation>

      <wsdl:operation name="getAccountsByPayer" parameterOrder="in0">

         <wsdl:input message="impl:getAccountsByPayerRequest" 
name="getAccountsByPayerRequest"/>

         <wsdl:output message="impl:getAccountsByPayerResponse" 
name="getAccountsByPayerResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="AccountDetailsSoapBinding" 
type="impl:AccountDetailsService">

      <wsdlsoap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="getAccountByMemberID">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAccountByMemberIDRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAccountByMemberIDResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getAccountsByCustomer">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAccountsByCustomerRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAccountsByCustomerResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

      <wsdl:operation name="getAccountsByPayer">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getAccountsByPayerRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getAccountsByPayerResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="AccountDetailsServiceService">

      <wsdl:port binding="impl:AccountDetailsSoapBinding" name="AccountDetails">

         <wsdlsoap:address 
location="http://localhost:9080/BankServices/hsa/AccountDetails"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>






-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to