Hello List
I have a webservice with ws-security and would like to up/download files. (I
followed this howto http://www.jroller.com/gmazza/entry/cxf_x509_profile)
I also added the <property name="allowMTOM" value="true"/> for the
WSS4JOutInterceptor. It works for 40MB files but when trying to upload a
120MB file I got the following exception.

14:35:52,010  INFO SecurityTokenReference:562 - X509IssuerSerial alias:
myservicekey
14:35:52,195  INFO SecurityTokenReference:562 - X509IssuerSerial alias:
myclientkey
2010-06-15 14:36:00 WARNING Interceptor has thrown exception, unwinding now

java.lang.OutOfMemoryError: Java heap space
    0
com.sun.xml.bind.v2.util.ByteArrayOutputStreamEx.readFrom(ByteArrayOutputStreamEx.java:71)
    1
com.sun.xml.bind.v2.runtime.unmarshaller.Base64Data.get(Base64Data.java:189)
    2
com.sun.xml.bind.v2.runtime.unmarshaller.Base64Data.length(Base64Data.java:218)
    3
com.sun.xml.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.text(ValidatingUnmarshaller.java:109)
    4
com.sun.xml.bind.v2.runtime.unmarshaller.MTOMDecorator.startElement(MTOMDecorator.java:103)
    5
com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
    6
com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:242)
    7
com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:176)
    8
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
    9
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)
   10
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:646)
   11
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:533)
   12 org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:128)
   13
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:188)
   14
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
   15
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104)
   16
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:98)
   17
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:392)
   18
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:170)
   19
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:142)
   20
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:45)
   21 javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
   22
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:101)
   23
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   24
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   25
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   26
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   27
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
   28
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   29
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   30
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
   31 org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)

org.apache.cxf.interceptor.Fault: Unmarshalling Error: Java heap space
    0
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:668)
    1
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:533)
    2 org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:128)
    3
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:188)
    4
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
    5
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104)
    6
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:98)
    7
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:392)
    8
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:170)
    9
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:142)
   10
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:45)
   11 javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
   12
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:101)
   13
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   14
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   15
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   16
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   17
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
   18
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   19
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   20
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
   21 org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
   22 org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
   23 org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
   24
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
   25
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
   26
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
   27 java.lang.Thread.run(Thread.java:619)


- Bastian





2010/4/30 Steve T/V <[email protected]>

>
> Thanks to Dan, we got attachments working and the initial result, at least,
> shows no OutOfMemory exceptions!
>
> The solution was a little different than he described in the code excerpt,
> since it was the WSS4JOutInterceptor (not the "In" interceptor) and we had
> the client configuration in Java, but it was enough to point us in the
> right
> direction.  Here's the relevant change that can be matched up with our code
> already posted:
>
>        WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
>         wssOut.setAllowMTOM(true);
>        cxfEndpoint.getOutInterceptors().add(wssOut);
>
> Thanks again.  Your response saved us a lot of time.
>
> Regards,
>
> Steve
>
>
> dkulp wrote:
> >
> >
> > By default, the WSS4JOutInterceptor turns off MTOM since the attachments
> > would
> > not be signed/encrypted.   Basically, it takes the "secure" route.
> >
> > You can tell it to not do that by:
> >
> > <bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
> > <constructor-arg>
> > ....
> > </contructor-arg>
> > <property name="allowMTOM" value="true"/>
> > ....
> >
> > Dan
> >
> > --
> > Daniel Kulp
> > [email protected]
> > http://dankulp.com/blog
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/Out-of-memory-when-sending-files-%28MTOM%2C-inlining%2C-JDK-1.6%29-tp28394078p28412640.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Reply via email to