axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tammy Dugan <tdu...@regenstrief.org>
Subject Re: MTOM error "java.lang.OutOfMemoryError: Java heap space"
Date Wed, 23 May 2007 14:14:54 GMT
I have been having a similar problem but with the actual xml in the body 
of the SOAP message. I am trying to stream xml from a database to the 
service output but am getting out of memory errors because something in 
Axis2 is buffering the data. The soap xml I am sending back is very 
large (>100 MB). Here is some code that illustrates what I am trying to do:

package org.regenstrief.query_tests;

import java.io.InputStream;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;

import org.apache.axiom.om.OMDocument;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.axiom.om.impl.dom.DocumentImpl;
import org.apache.axiom.om.impl.dom.factory.OMDOMFactory;
import org.w3c.dom.Element;

public class TestCase
{
    //service method that would get called by axis2
    public OMElement processBody() throws Exception
    {
        DocumentImpl responseDoc = new DocumentImpl(new OMDOMFactory());
        Element resultXML = 
responseDoc.createElement("queryDatasetReturnResponse");

        OMElement rawdataNode = readDataSetXMLToDom();
        ((OMElement) resultXML).addChild(rawdataNode);

        return (OMElement) resultXML;
    }

    private static OMElement readDataSetXMLToDom() throws Exception
    {
        OMElement resultElement = null;
        OMDocument datasetDoc = null;

        InputStream inputStream = null; //input stream pulled from database

        if (inputStream != null)
        {
            XMLStreamReader parser = 
XMLInputFactory.newInstance().createXMLStreamReader(inputStream);
            StAXOMBuilder builder = new StAXOMBuilder(parser);
            datasetDoc = builder.getDocument();
            resultElement = datasetDoc.getOMDocumentElement();

        }

        return resultElement;
    }

}


Does axis2 support unlimited xml in the soap body?


Tammy

Davanum Srinivas wrote:
> Jochen,
>
> we are not taking about the SAAJ API, check the Attachments class in
> axiom. There is a method called getIncomingAttachmentStreams(). Also
> check the axiom test harness it shows how to use that API. this will
> give you direct access to the streams and you can do whatever you want
> by yourself. Note that this API has not been thoroughly exercised, so
> you may need to experiment/fix-stuff and help us make it better.
>
> thanks,
> dims
>
> On 5/23/07, Jochen Zink <jochenlist@web.de> wrote:
>> Sorry, I did not want to affront you. A big sorry for that!
>>
>> I know it is difficult to handle large attachments without caching it 
>> in files.
>>
>> With caching attachments in files, there can(!) be some problems with 
>> security configurations on some applicationservers. It can be 
>> forbidden for webapplications to write any files to harddisc. This 
>> could run in problems, if some people want to use axis2 in high 
>> security environments, this could be a problem. A direct streaming of 
>> the attachments to the Service Implementation would be solve the 
>> problem... After taking a look to SAAJ I'm nearly sure, that a direct 
>> streaming is imposible with this API.
>>
>> Regards!
>> Jochen
>>
>>
>> > -----Urspr√ľngliche Nachricht-----
>> > Von: axis-user@ws.apache.org
>> > Gesendet: 23.05.07 10:15:30
>> > An: axis-user@ws.apache.org
>> > Betreff: Re: MTOM error "java.lang.OutOfMemoryError: Java heap space"
>>
>>
>> >
>> > On 5/23/07, Jochen Zink <jochenlist@web.de> wrote:
>> > >
>> > > This is the only way to handle large attachments int axis2, *sadly*.
>> > Feel free to contribute or implement if you have ideas for better
>> > mechanisms for handling large attachments... There was an earlier
>> > effort to port the attachment streaming mechanisms from Axis1.. But it
>> > was never completed..
>> >
>> > Thanks,
>> > Thilina
>> >
>> > >
>> > >
>> > > > -----Urspr√ľngliche Nachricht-----
>> > > > Von: axis-user@ws.apache.org
>> > > > Gesendet: 23.05.07 07:23:12
>> > > > An: "axis user" <axis-user@ws.apache.org>
>> > > > Betreff: MTOM error "java.lang.OutOfMemoryError: Java heap space"
>> > >
>> > >
>> > > > Hi friends,
>> > > >
>> > > >
>> > > >
>> > > >     I am running sample application "mtom" from standard axis2 
>> samples [axis2-1.1.1\samples\mtom]. This sample is working for 
>> sending attachment of size 2-3 MB, but giving error for more than 3MB 
>> size of files.
>> > > >
>> > > >
>> > > >
>> > > > I want to send file of size 50-100 MB.
>> > > >
>> > > >
>> > > >
>> > > > error is as follows
>> > > >
>> > > >      [java] Exception in thread "main" 
>> org.apache.axis2.AxisFault: java.lang.Out
>> > > > OfMemoryError: Java heap space
>> > > >      [java]     at 
>> org.apache.axis2.description.OutInAxisOperationClient.send(Ou
>> > > > tInAxisOperation.java:271)
>> > > >      [java]     at 
>> org.apache.axis2.description.OutInAxisOperationClient.execute
>> > > > (OutInAxisOperation.java:202)
>> > > >      [java]     at 
>> sample.mtom.service.MTOMSampleStub.attachment(Unknown Source)
>> > > >
>> > > >
>> > > >
>> > > >      [java]     at 
>> sample.mtom.client.Client.transferFile(Unknown Source)
>> > > >      [java]     at sample.mtom.client.Client.main(Unknown Source)
>> > > >      [java] Java Result: 1
>> > > >
>> > > >
>> > > >
>> > > > I have enabled "MTOM" & "filecaching" both in the client side,

>> but not server side caching means in "axis2.xml".
>> > > >
>> > > > 1) Can some one figureout solution?
>> > > >
>> > > > 2) Can we send file as attachment of size 50MB - 1GB?
>> > > >
>> > > >
>> > > >
>> > > > With best regards
>> > > >
>> > > > From
>> > > > Vikas R. Khengare
>> > > >
>> > >
>> > >
>> > > _______________________________________________________________
>> > > SMS schreiben mit WEB.DE FreeMail - einfach, schnell und
>> > > kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192
>> > >
>> > >
>> > > 
>> ---------------------------------------------------------------------
>> > > To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> > > For additional commands, e-mail: axis-user-help@ws.apache.org
>> > >
>> > >
>> >
>> >
>> > --
>> > Thilina Gunarathne  -  http://www.wso2.com - 
>> http://thilinag.blogspot.com
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> > For additional commands, e-mail: axis-user-help@ws.apache.org
>> >
>> >
>>
>>
>> _______________________________________________________________
>> SMS schreiben mit WEB.DE FreeMail - einfach, schnell und
>> kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>
>>
>
>

-- 
Tammy Dugan
Computer Programmer

Regenstrief Institute, Inc.
Medical Informatics
Health Information and Translational Sciences (HITS) Building
410 West 10th Street, Suite 2000
Indianapolis, IN 46202
Main: 317.423.5500
Fax: 317.423.5695
IU campus mail address: HS, 2000

(317) 423 - 5541

Confidentiality Notice: The contents of this message and any files transmitted with it may
contain confidential and/or privileged information and are intended solely for the use of
the named addressee(s). Additionally, the information contained herein may have been disclosed
to you from medical records with confidentiality protected by federal and state laws. Federal
regulations and State laws prohibit you from making further disclosure of such information
without the specific written consent of the person to whom the information pertains or as
otherwise permitted by such regulations. A general authorization for the release of medical
or other information is not sufficient for this purpose.
 
If you have received this message in error, please notify the sender by return e-mail and
delete the original message. Any retention, disclosure, copying, distribution or use of this
information by anyone other than the intended recipient is strictly prohibited.



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Mime
View raw message