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 <[EMAIL PROTECTED]> 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: [email protected]
> Gesendet: 23.05.07 10:15:30
> An: [email protected]
> Betreff: Re: MTOM error "java.lang.OutOfMemoryError: Java heap space"


>
> On 5/23/07, Jochen Zink <[EMAIL PROTECTED]> 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: [email protected]
> > > Gesendet: 23.05.07 07:23:12
> > > An: "axis user" <[email protected]>
> > > 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: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> --
> Thilina Gunarathne - http://www.wso2.com - http://thilinag.blogspot.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


_______________________________________________________________
SMS schreiben mit WEB.DE FreeMail - einfach, schnell und
kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to