Well, it's the second coming of the trouble I had with MTOM. I wasn't closing the InputStreams in the JAX-RS service functions, and that eventually led to a logjam.
On Thu, May 12, 2011 at 5:58 AM, Sergey Beryozkin <[email protected]> wrote: > Hi Benson > > I think if you do webClient.post(payload) and exit immediately, > without check the response, then may be the client runtime closes the > streams too early. > May be you just need to configurea couple of timeouts, > HttpClientPolicy config = > WebClient.getConfig(webClient).getHttpConduit().getClient(); > config.setReceiveTimeout(10000); > config.setConnectionTimeout(10000); > > How is this issue for sending large attachments/payloads resolved in > JAXWS case ? > > Hope that helps. > Sergey > > On Wed, May 11, 2011 at 7:53 PM, Benson Margulies <[email protected]> > wrote: >> CXF 2.4.0. I have a JAX-RS method that accepts a POST of type >> application/json. I've written the function to take an InputStream as >> an argument. >> >> Every so often, it fails with a read time-out. The client passes the >> entire contents of the posted json in the post call, so I don't see >> where pauses would come from. >> >> I do wonder if the client is somehow leaking streams. When I call >> WebClient.post, what is my responsibility for closing and stream in >> the Response? >> >> 2011-05-11 14:50:14,613 [http-9167-1] WARN >> com.basistech.lsh.service.UploadService - IO Error reading json >> java.net.SocketTimeoutException: Read timed out >> at java.net.SocketInputStream.socketRead0(Native Method) >> at java.net.SocketInputStream.read(SocketInputStream.java:129) >> at >> org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:751) >> at >> org.apache.coyote.http11.InternalInputBuffer$InputStreamInputBuffer.doRead(InternalInputBuffer.java:781) >> at >> org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:116) >> at >> org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:710) >> at org.apache.coyote.Request.doRead(Request.java:428) >> at >> org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304) >> at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:403) >> at >> org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:327) >> at >> org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193) >> at java.io.FilterInputStream.read(FilterInputStream.java:116) >> at >> org.codehaus.jackson.impl.ByteSourceBootstrapper.ensureLoaded(ByteSourceBootstrapper.java:340) >> at >> org.codehaus.jackson.impl.ByteSourceBootstrapper.detectEncoding(ByteSourceBootstrapper.java:116) >> at >> org.codehaus.jackson.impl.ByteSourceBootstrapper.constructParser(ByteSourceBootstrapper.java:197) >> at >> org.codehaus.jackson.JsonFactory._createJsonParser(JsonFactory.java:542) >> at >> org.codehaus.jackson.JsonFactory.createJsonParser(JsonFactory.java:389) >> at >> org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1448) >> at >> com.basistech.lsh.service.UploadService.upload(UploadService.java:92) >> at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at >> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173) >> at >> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89) >> at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:162) >> at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:89) >> at >> org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) >> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) >> at java.util.concurrent.FutureTask.run(FutureTask.java:138) >> at >> org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) >> at >> org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) >> at >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) >> at >> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:118) >> at >> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:208) >> at >> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223) >> at >> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:166) >> at >> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:113) >> at >> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184) >> at >> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:107) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) >> at >> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163) >> 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.coyote.http11.Http11Processor.process(Http11Processor.java:859) >> at >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) >> at >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) >> at java.lang.Thread.run(Thread.java:680) >> > > > > -- > Sergey Beryozkin > > Application Integration Division of Talend > http://sberyozkin.blogspot.com >
