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

Reply via email to