Hello Sebastien,

Thanks for your reply.

I have tried modifying the axis source code particularly Message.java and
SOAPPart.java, but I got a 500 Internal Server Error.

Do you have any solution with regards to this problem? Any help will be
greatly appreciated.

Best regards,

Benedick

----- Original Message -----
From: "Astie, Sebastien" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, August 29, 2003 1:57 AM
Subject: RE: Out of Memory


> I had a similar problem and I solved the problem by modifying
org.apache.axis.Message and org.apache.axis.SoapPart
>
> I hope it will solve your problem.
>
>
> What I have done is :
>
> modify the method writeTo in SoapPart :
>
>  /**
>      * Write the contents to the specified writer.
>      */
>     public void writeTo(Writer writer) throws IOException {
>
>         if ( currentForm == FORM_FAULT ) {
>             AxisFault env = (AxisFault)currentMessage;
>             try {
>                 env.output(new SerializationContextImpl(writer,
getMessage().getMessageContext()));
>             } catch (Exception e) {
>                 log.error(Messages.getMessage("exception00"), e);
>                 throw env;
>             }
>             return;
>         } else if ( currentForm == FORM_SOAPENVELOPE ) {
>
>
>             SOAPEnvelope env = (SOAPEnvelope)currentMessage;
>             try {
>                 env.output(new SerializationContextImpl(writer,
getMessage().getMessageContext()));
>             } catch (Exception e) {
>                 throw AxisFault.makeFault(e);
>             }
>             return;
>         } else {
>             writer.write(this.getAsString());
>         }
>
>
> then in Message :
>
> add a constant :
>
>     /**
>      * This is the buffer size used to output xml contents.
>      */
>     public static int DEFAULT_OUTPUT_BUFF_SIZE = 1000000;
>
>
> modify method getContentType
>
> public String getContentType(SOAPConstants sc) throws AxisFault {
>
>         int sendType = Attachments.SEND_TYPE_NOTSET;
>         if ((msgContext != null) && (msgContext.getService() != null)) {
>             sendType = msgContext.getService().getSendType();
>         }
>
>         /*
>             if (sendType != Attachments.SEND_TYPE_NONE) {
>             //Force serialization if it hasn't happend it.
>             //Rick Rineholt fix this later.
>             mSOAPPart.getAsBytes();
>         } */
>
>         String ret = sc.getContentType();
>         if (mAttachments != null && 0 !=
mAttachments.getAttachmentCount()) {
>             ret = mAttachments.getContentType();
>         }
>         return ret;
>     }
>
>
>
> modify method writeTo:
>
> public void writeTo(java.io.OutputStream os) throws SOAPException,
IOException {
>          //Do it the old fashion way.
>         if (mAttachments == null || 0 ==
mAttachments.getAttachmentCount()) {
>             try {
>                 Writer writer = new OutputStreamWriter(os,"UTF-8");
>                 // writer = new BufferedWriter(writer);
>                 writer = new BufferedWriter(writer,
DEFAULT_OUTPUT_BUFF_SIZE);
>                 mSOAPPart.writeTo(writer);
>                 writer.flush();
>             } catch (java.io.IOException e) {
>                 log.error(Messages.getMessage("javaIOException00"), e);
>             }
>         } else {
>             try {
>                 mAttachments.writeContentToStream(os);
>             } catch (java.lang.Exception e) {
>                 log.error(Messages.getMessage("exception00"), e);
>             }
>         }
>     }
>
>
>
> -----Original Message-----
> From: Ekbote, Niranjan [mailto:[EMAIL PROTECTED]
> Sent: Thursday, August 28, 2003 10:17 AM
> To: '[EMAIL PROTECTED]'
> Subject: RE: Out of Memory
>
>
> I am not sure if Axis supports streaming. I think that could solve your
> problem.
>
> Thanks!
>
> -- Niranjan.
>
>
> -----Original Message-----
> From: Benedick Mark Chan [mailto:[EMAIL PROTECTED]
> Sent: Thursday, August 28, 2003 1:08 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Out of Memory
>
>
> Hello David,
>
> Thanks for your reply.
>
> I have tried increasing my heap  size dramatically, but still it doesn't
> work.
>
> Is this a limitation of axis? If so, then I guess chopping to several
small
> chucks will be my last resort. =(
>
> Thanks.
>
> -Benedick
>
> ----- Original Message -----
> From: "David You" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, August 29, 2003 1:03 AM
> Subject: RE: Out of Memory
>
>
> > 1. Are you sure WS is good solution for you?
> > 2. If you are sure, try to config VM with more heap size.
> > 3. still doesn't work? Try to chop it in several small chunk.
> >
> > David
> >
> > -----Original Message-----
> > From: Benedick Mark Chan [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, August 28, 2003 9:48 AM
> > To: [EMAIL PROTECTED]
> > Subject: Out of Memory
> >
> >
> > Hello guys,
> >
> > I would like to ask a question with regards to the memory usage of
axis...
> >
> > I have tried populating 6 million strings to a vector, and return the
> vector
> > to the client. The server has successfully populated the vector with 6
> > million
> > strings, but when the server send the vector to the client, the server
> > throws an
> > out of memory exception. Is there any way to solve this problem? Please
> help
> > me.
> >
> > Thanks.
> >
> > Sincerely Yours,
> >
> > Benedick
> >
>

Reply via email to