Hi, All. I am using Tomcat8.0.33 and JAX-WS RI 2.2.10. I am trying to File transfer using JAX-WS with MTOM. Client connects via reverse proxy made by httpd. The httpd connects to tomcat by AJP.
When I upload a file several times consecutively, some are completed successful. But, some will fail by the exception that I showed at the end of this message. My server.xml remains default. The same problem occurs with Tomcat 7.0.69. On the other hand, the problem does not occur when I use HTTP connector not AJP. And also, the problem did not occur with JBoss EAP 6.1 even if I use AJP connector. I use the sample program in the following URL for the confirmation of the phenomenon. Server program https://github.com/ooura/jaxws-mtom-sample-server Client program https://github.com/ooura/jaxws-mtom-sample-client By configuration, this program can run many client concurrently in multi threads And each client can perform the upload multiple times. But, I encounted the problem by default. (1 upload / 1 client) For example, I execute the client 5 times like below. $ mvn exec:java; mvn exec:java; mvn exec:java; mvn exec:java; mvn exec:java In my environment, Immediately after the start of the Tomcat, until the fourth successful, but always fail in the fifth. Is it the bug of tomcat? When upload failed, I found following exception in catalina.out. SEVERE [ajp-nio-8009-exec-2] com.sun.xml.ws.transport.http.HttpAdapter.invokeAsync Couldn't create SOAP message due to exception: org.jvnet.mimepull.MIMEParsingException: Missing start boundary com.sun.xml.ws.protocol.soap.MessageCreationException: Couldn't create SOAP message due to exception: org.jvnet.mimepull.MIMEParsingException: Missing start boundary at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:319) at com.sun.xml.ws.transport.http.HttpAdapter.decodePacket(HttpAdapter.java:503) at com.sun.xml.ws.transport.http.HttpAdapter.invokeAsync(HttpAdapter.java:713) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.invokeAsync(ServletAdapter.java:212) at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:161) at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:197) at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:81) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:868) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:666) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: org.jvnet.mimepull.MIMEParsingException: Missing start boundary at org.jvnet.mimepull.MIMEParser.skipPreamble(MIMEParser.java:313) at org.jvnet.mimepull.MIMEParser.access$300(MIMEParser.java:68) at org.jvnet.mimepull.MIMEParser$MIMEEventIterator.next(MIMEParser.java:149) at org.jvnet.mimepull.MIMEParser$MIMEEventIterator.next(MIMEParser.java:132) at org.jvnet.mimepull.MIMEMessage.makeProgress(MIMEMessage.java:198) at org.jvnet.mimepull.MIMEPart.getHeaders(MIMEPart.java:179) at org.jvnet.mimepull.MIMEPart.getContentType(MIMEPart.java:171) at com.sun.xml.ws.encoding.MimeMultipartParser$PartAttachment.getContentType(MimeMultipartParser.java:184) at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:359) at com.sun.xml.ws.encoding.MimeCodec.decode(MimeCodec.java:195) at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:306) ... 29 more Thanks for reading. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org