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]