开发者

How to catch a MessagingException on Apache Axis

开发者 https://www.devze.com 2023-01-07 02:19 出处:网络
On my Axis 1.4 webservice this exception is thrown when an incoming message is corrupted. WARN ;2010-07-15 14:45:38,232;org.apache.axis.attachments.AttachmentsImpl;;Exception:

On my Axis 1.4 webservice this exception is thrown when an incoming message is corrupted.

WARN ;2010-07-15 14:45:38,232;org.apache.axis.attachments.AttachmentsImpl;;Exception:
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: javax.mail.MessagingException: Error in input stream;
  nested exception is:
    java.io.IOException: End of stream encountered before final boundary marker.
 faultActor: 
 faultNode: 
 faultDetail: 
    {http://xml.apache.org/axis/}stackTrace:javax.mail.MessagingException: Error in input stream开发者_如何学Go;
  nested exception is:
    java.io.IOException: End of stream encountered before final boundary marker.
    at javax.mail.internet.InternetHeaders.load(InternetHeaders.java:361)
    at javax.mail.internet.InternetHeaders.<init>(InternetHeaders.java:310)
    at org.apache.axis.attachments.MultiPartRelatedInputStream.readTillFound(MultiPartRelatedInputStream.java:499)
    at org.apache.axis.attachments.MultiPartRelatedInputStream.readAll(MultiPartRelatedInputStream.java:433)
    at org.apache.axis.attachments.MultiPartRelatedInputStream.getAttachments(MultiPartRelatedInputStream.java:439)
    at org.apache.axis.attachments.AttachmentsImpl.mergeinAttachments(AttachmentsImpl.java:171)
    at org.apache.axis.attachments.AttachmentsImpl.getAttachmentCount(AttachmentsImpl.java:550)
    at org.apache.axis.Message.getAttachments(Message.java:689)
    at prg.xft.in.attachments.ExtractAttachments.extract(ExtractAttachments.java:45)
    at prg.xft.ib.In.inbound(In.java:79)
    at prg.xft.ib.In.<init>(In.java:54)
    at prg.skel.jiz.ServiceImpl.inbound(ServiceImpl.java:24)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
    at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: End of stream encountered before final boundary marker.
    at org.apache.axis.attachments.BoundaryDelimitedStream.read(BoundaryDelimitedStream.java:308)
    at org.apache.axis.attachments.BoundaryDelimitedStream.read(BoundaryDelimitedStream.java:358)
    at org.apache.axis.attachments.BoundaryDelimitedStream.read(BoundaryDelimitedStream.java:370)
    at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:84)
    at javax.mail.internet.InternetHeaders.load(InternetHeaders.java:338)
    ... 42 more

I tried to catch the exception multiple times on different places in my source code, but I can not catch it. The stacktrace only appears in my logs.


I'm almost certain that exception is caught within this class and apache logger prints stack trace. That is common practice. You will be not able to catch it.

See source code for sure: http://kickjava.com/src/org/apache/axis/attachments/AttachmentsImpl.java.htm

0

精彩评论

暂无评论...
验证码 换一张
取 消