Hi

If it works without the log, then see this
http://camel.apache.org/why-is-my-message-body-empty.html

On Mon, Jun 22, 2015 at 7:18 PM, Tim Dudgeon <tdudgeon...@gmail.com> wrote:
> I'm struggling with a REST DSL. It handles a POST request for a file upload,
> so the request body is binary type, and the response is JSON describing the
> result. The container is Jetty.
>
> My DSL looks like this:
>
> rest("/rest/v1/datasets")
> .post().description("Upload file to create new dataset")
> .bindingMode(RestBindingMode.off)
> .produces("application/json")
> .route()
> .to("direct:process_the_body")          // this processed the body and
> returns a result object
> .marshal().json(JsonLibrary.Jackson) // which here is converted to JSON
> .log("marshal complete. JSON is ${body}")
> .endRest()
>
> Its all working fine, and the JSON gets marshalled correctly (the log()
> statement
> By the request fails with this error:
>
> [qtp562561015-19] INFO route2 - marshal complete. JSON is
> {"id":13,"name":"big_bad","size":null,"metadata":{"type":"ITEM","className":"java.util.stream.ReferencePipeline$Head","size":1},"created":1434992702164,"updated":1434992702164,"loid":333226}
> [qtp562561015-19] WARN org.eclipse.jetty.server.AbstractHttpConnection -
> header full: java.lang.RuntimeException: Header>6144
> [qtp562561015-19] ERROR
> org.apache.camel.component.jetty.CamelContinuationServlet - Error processing
> request
> HttpException(500,null,null)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.commitResponse(AbstractHttpConnection.java:645)
> at
> org.eclipse.jetty.server.AbstractHttpConnection$Output.flush(AbstractHttpConnection.java:1122)
> at org.apache.camel.util.IOHelper.copy(IOHelper.java:201)
> at
> org.apache.camel.component.http.DefaultHttpBinding.copyStream(DefaultHttpBinding.java:318)
> at
> org.apache.camel.component.http.DefaultHttpBinding.doWriteDirectResponse(DefaultHttpBinding.java:378)
> at
> org.apache.camel.component.http.DefaultHttpBinding.doWriteResponse(DefaultHttpBinding.java:299)
> at
> org.apache.camel.component.http.DefaultHttpBinding.writeResponse(DefaultHttpBinding.java:231)
> at
> org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:198)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
> at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> at org.eclipse.jetty.server.Server.handleAsync(Server.java:410)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:519)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
> at
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:651)
> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
> at
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> at java.lang.Thread.run(Thread.java:745)
> [qtp562561015-19] WARN org.eclipse.jetty.server.Response - Committed before
> 500 null
> [qtp562561015-19] WARN org.eclipse.jetty.server.AbstractHttpConnection -
> /rest/v1/datasets
> java.lang.IllegalStateException: Committed
> at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1130)
> at org.eclipse.jetty.server.Response.sendError(Response.java:317)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1095)
> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> at org.eclipse.jetty.server.Server.handleAsync(Server.java:410)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:519)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
> at
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:651)
> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
> at
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> at java.lang.Thread.run(Thread.java:745)
>
> Any ideas what's wrong?
>
> Tim
>



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cib...@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Reply via email to