axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Menzner <rmenz...@L1id.com>
Subject Re: [Axis2] Can I enforce MTOM message encoding programatically?
Date Tue, 30 Oct 2007 09:04:38 GMT
Hi Thilina,

thanks for your response. See my further comments inline below ...

Thilina Gunarathne wrote:
> Hi,
>   
>>> msgContextL.getConfigurationContext().setProperty(Constants.Configuration.ENABLE_MTOM,
>>> Constants.VALUE_TRUE);
>>>       
>> This creates a correct MTOM message, however, finally the service
>> encounters an exception (something about Mime and writing) and is no
>> longer usable from then on.
>>     
> What is the exception you are getting...
>   
These are the messages I had received:

INFO: Server startup in 13625 ms
[ERROR] Servlet.service() for servlet AxisServlet threw exception
org.apache.axiom.om.OMException: Error while writing to the OutputStream.
        at 
org.apache.axiom.om.impl.MIMEOutputUtils.complete(MIMEOutputUtils.java:102)
        at 
org.apache.axiom.om.impl.MTOMXMLStreamWriter.flush(MTOMXMLStreamWriter.java:154)
        at 
org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:458)
        at 
org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:68)
        at 
org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:294)
        at 
org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:211)
        at org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:478)
        at 
org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:403)
        at 
org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet.java:366)
        at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:154)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
        at 
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
        at 
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
        at 
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
        at java.lang.Thread.run(Thread.java:595)
Caused by: ClientAbortException:  java.io.IOException
        at 
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366)
        at 
org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347)
        at 
org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392)
        at 
org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381)
        at 
org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
        at 
org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:83)
        at 
org.apache.axiom.om.impl.MIMEOutputUtils.writeMimeBoundary(MIMEOutputUtils.java:156)
        at 
org.apache.axiom.om.impl.MIMEOutputUtils.startWritingMime(MIMEOutputUtils.java:164)
        at 
org.apache.axiom.om.impl.MIMEOutputUtils.complete(MIMEOutputUtils.java:73)
        ... 23 more
Caused by: java.io.IOException
        at 
org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:700)
        at 
org.apache.coyote.http11.InternalAprOutputBuffer$SocketOutputBuffer.doWrite(InternalAprOutputBuffer.java:730)
        at 
org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:124)
        at 
org.apache.coyote.http11.InternalAprOutputBuffer.doWrite(InternalAprOutputBuffer.java:536)
        at org.apache.coyote.Response.doWrite(Response.java:560)
        at 
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
        ... 32 more

I have updated the axiom jars to a recent snapshot because of the order 
of attachments issue (see AXIS2-3196 in which you were involved), 
otherwise it is Axis2-1.3.

> Try the following...
>     MessageContext inMessageContext = MessageContext.getCurrentMessageContext();
>    OperationContext operationContext = inMessageContext.getOperationContext();
>    MessageContext outMessageContext = operationContext
>
> .getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
>     outMessageContext.setProperty(Constants.Configuration.ENABLE_MTOM,
>     Constants.VALUE_TRUE);
>   
I did as you suggested but I still keep getting an exception (see 
stacktrace below). But in this case, the service can be used further. It 
is my impression that the data is started to be encoded correctly, but 
the binary blob is simply incomplete. I'm using a C# client based on 
WSE3, if that matters.

INFO: Server startup in 13157 ms
[ERROR]
org.apache.axis2.AxisFault
        at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)
        at 
org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:72)
        at 
org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:294)
        at 
org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:211)
        at org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:478)
        at 
org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:403)
        at 
org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet.java:366)
        at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:154)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
        at 
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
        at 
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
        at 
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
        at java.lang.Thread.run(Thread.java:595)
Caused by: com.ctc.wstx.exc.WstxIOException: null
        at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:313)
        at 
org.apache.axiom.om.impl.MTOMXMLStreamWriter.flush(MTOMXMLStreamWriter.java:139)
        at 
org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:458)
        at 
org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:68)
        ... 20 more
Caused by: ClientAbortException:  java.io.IOException
        at 
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366)
        at 
org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347)
        at 
org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392)
        at 
org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381)
        at 
org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
        at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:96)
        at 
com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:214)
        at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:311)
        ... 23 more
Caused by: java.io.IOException
        at 
org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:700)
        at 
org.apache.coyote.http11.InternalAprOutputBuffer$SocketOutputBuffer.doWrite(InternalAprOutputBuffer.java:730)
        at 
org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:124)
        at 
org.apache.coyote.http11.InternalAprOutputBuffer.doWrite(InternalAprOutputBuffer.java:536)
        at org.apache.coyote.Response.doWrite(Response.java:560)
        at 
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
        ... 31 more


Thanks,
-Rainer

> thanks,
> Thilina
>   
>> I also tried:
>>
>>     
>>>             MessageContext    msgContextL    =
>>> MessageContext.getCurrentMessageContext();
>>>
>>> msgContextL.getOptions().setProperty(Constants.Configuration.ENABLE_MTOM,
>>> Constants.VALUE_TRUE);
>>>       
>> This does not work at all, I still get Base64 encoded text messages.
>>
>> I would much appreciate if someone could tell me the correct way of
>> enforcing MTOM encoding programatically
>>
>> Thanks,
>> -Rainer
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>
>>
>>     
>
>
>   


-- 

______________________________________________
 
*Dr. Rainer Menzner*
Principal Engineer, R&D
 
*L-1 Identity Solutions AG*
/Protecting and Securing Personal Identities and Assets/
 
Universit├Ątsstr. 160
44801 Bochum, Germany
Telephone:  	+49-234-9787-41
Facsimile:  	+49-234-9787-77
Mobile:  	0160 / 700 99 07
email: 	rmenzner@L1id.com <mailto:rmenzner@L1id.com>

 
www.L1ID.com <http://www.l1id.com/>
 
This message is only for the use of the intended recipient and may 
contain information that is CONFIDENTIAL and PROPRIETARY to L-1 Identity 
Solutions. If you are not the intended recipient, please erase all 
copies of the message and its attachments and notify the sender immediately.
 
VORSTAND / EXECUTIVE BOARD Hartmuth von Maltzahn (Vors. / Chairman), Dr. 
Stefan Gehlen | AUFSICHTSRAT / SUPERVISORY BOARD James H. Moar (Vors. / 
Chairman) | GERICHTSSTAND / REGISTER COURT Amtsgericht Bochum, HRB 69 54 
| UST-ID / VAT-REG.-NO. DE 813124378

---------------------------------------------------------------------
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