You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by "Miller, Andy" <an...@hp.com> on 2003/06/25 17:39:24 UTC

Turning off sendMultiRefs causes OutOfMemoryError

I can find no reference to this problem anywhere in this mailing list so
I was hoping someone could shed some light on it.  Basically my
situation is that the soap testing tool we are using to diff soap
results can't handle mutlirefs, so I set the "sendMultiRefs" option in
my .wsdd config file to "false".  When I do this though, the Axis
servlet spins for about 20 seconds and then throws an OutOfMemoryError.
With this setting set to "true" the result is returned just fine.  

I've tried most of the recent Axis 1.1 Release Candidates, and now the
full on 1.1 Release, all give me this problem.

Is there some facet of SOAP that we are using in the response that
cannot be handled with mutlirefs=false? I would think it would be
simpler to serialize to xml without mulitrefs.

The pertinent details are as follows (I can provide WSDL and Java
Objects if needed):

*** SOAP Result (with multirefs=true):

HTTP/1.0 200 OK
Date: Wed, 25 Jun 2003 15:59:27 GMT
Server: WebLogic WebLogic Server 7.0 SP2  Sun Jan 26 23:09:32 PST 2003
234192 
Content-Type: text/xml; charset=utf-8
Set-Cookie:
JSESSIONID=25GfTFKpzpWESCnXAOACiUm4pLfu8oLnwkGd7wuEZYXuXldCWPmj!-1874272
230; path=/
Connection: Close

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <ns1:createUserResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="HPPService">
   <ns1:createUserReturn href="#id0"/>
  </ns1:createUserResponse>
  <multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:CreateUserResult"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="http://result.asl.hppcbl.globalops.hp.com">
   <faults xsi:type="soapenc:Array" soapenc:arrayType="ns4:Fault[5]"
xmlns:ns3="urn:hppcbl"
xmlns:ns4="http://common.hppcbl.globalops.hp.com">
    <item href="#id1"/>
    <item href="#id2"/>
    <item href="#id3"/>
    <item href="#id4"/>
    <item href="#id5"/>
   </faults>
   <value href="#id0"/>
   <profileId xsi:type="xsd:string" xsi:nil="true"/>
   <success xsi:type="xsd:boolean">false</success>
  </multiRef>
  <multiRef id="id3" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns5:Fault" xmlns:ns5="http://common.hppcbl.globalops.hp.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <code xsi:type="xsd:string">field.readonly</code>
   <desc xsi:type="xsd:string">field is read only;not updatable using
this serivce [must be blank] </desc>
   <fieldName xsi:type="xsd:string">creationAppId</fieldName>
  </multiRef>
  <multiRef id="id2" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns6:Fault" xmlns:ns6="http://common.hppcbl.globalops.hp.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <code xsi:type="xsd:string">field.forfutureuse</code>
   <desc xsi:type="xsd:string">field reserved for future use [must be
blank] </desc>
   <fieldName xsi:type="xsd:string">busAddrLocalizationCode</fieldName>
  </multiRef>
  <multiRef id="id4" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns7:Fault" xmlns:ns7="http://common.hppcbl.globalops.hp.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <code xsi:type="xsd:string">field.forfutureuse</code>
   <desc xsi:type="xsd:string">field reserved for future use [must be
blank] </desc>
   <fieldName xsi:type="xsd:string">cidNumber</fieldName>
  </multiRef>
  <multiRef id="id1" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns8:Fault" xmlns:ns8="http://common.hppcbl.globalops.hp.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <code xsi:type="xsd:string">field.forfutureuse</code>
   <desc xsi:type="xsd:string">field reserved for future use [must be
blank] </desc>
   <fieldName xsi:type="xsd:string">homeAddrLocalizationCode</fieldName>
  </multiRef>
  <multiRef id="id5" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns9:Fault" xmlns:ns9="http://common.hppcbl.globalops.hp.com"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <code xsi:type="xsd:string">field.readonly</code>
   <desc xsi:type="xsd:string">field is read only;not updatable using
this serivce [must be blank] </desc>
   <fieldName xsi:type="xsd:string">brandedUnbranded</fieldName>
  </multiRef>
 </soapenv:Body>
</soapenv:Envelope>

*** Exception (with multirefs=false):

     [java] (500)Internal Server Error
     [java]     at
org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java
:630)
     [java]     at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:128)
     [java]     at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.j
ava:71)
     [java]     at
org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
     [java]     at
org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
     [java]     at
org.apache.axis.client.AxisClient.invoke(AxisClient.java:180)
     [java]     at
org.apache.axis.client.Call.invokeEngine(Call.java:2564)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2553)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2248)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2171)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:1691)
     [java]     at
com.hp.globalops.hppcbl.test.HPPServiceSoapBindingStub.execute(HPPServic
eSoapBindingStub.java:649)
     [java]     at
com.hp.globalops.hppcbl.test.HPPServiceSoapBindingStub.createUser(HPPSer
viceSoapBindingStub.java:360)
     [java]     at
com.hp.globalops.hppcbl.test.cases.CreateUser.execute(CreateUser.java:31
)
     [java]     at
com.hp.globalops.hppcbl.test.cases.HPPTestCase.perform(HPPTestCase.java:
20)
     [java]     at
com.hp.globalops.hppcbl.test.HPPWSClient.execTest(HPPWSClient.java:130)
     [java]     at
com.hp.globalops.hppcbl.test.HPPWSClient.main(HPPWSClient.java:86)


Thanks!!!!

Andy Miller
HP
Andy.miller@hp.com