|
From: Arun A. <aru...@gm...> - 2013-06-10 00:40:20
|
Hi,
I am using a Spring MVC application with resteasy-spring.
I have this simple method, which is throwing an exception when I call HTTP
Post on the mapped URI.
I am using JDK 1.7, with Jetty 8, Sevlet 3.0 web.xml. Spring
- 3.2.3.RELEASE and resteasy-spring-2.3.6.Final.
Do I need to use later versions of Rest easy?
Thanks
Arun
@POST
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/print/{realmId}/customer")
@GZIP
@ResponseBody
public DeferredResult<Customer> printAndEcho(@PathParam("realmId")
String realmId,
@QueryParam("requestId") String requestId,
Customer customer,
@HeaderParam("transport.type") String
transportType) {
LOGGER.info("realmId={}, requestId={}, transportType={},
customer={}",
new Object[]{realmId, requestId, transportType,
ToStringBuilder.reflectionToString(customer)});
DeferredResult<Customer> result = new DeferredResult<Customer>();
cachedCustomer = customer;
deferredResultMap.put(realmId+"-"+requestId, result);
return result;
}
Exception :
2013-06-09 17:24:21,929 WARN
[org.jboss.resteasy.core.SynchronousDispatcher#error():135] - Failed
executing POST /sample/print/253421978/customer
org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find
MessageBodyWriter for response object of type:
org.springframework.web.context.request.async.DeferredResult of media type:
application/xml
at org.jboss.resteasy.core.ServerResponse.writeTo(ServerResponse.java:216)
at org.jboss.resteasy.springmvc.ResteasyView$1.handle(ResteasyView.java:96)
at org.jboss.resteasy.springmvc.ResteasyView$1.handle(ResteasyView.java:81)
at
org.jboss.resteasy.springmvc.ResteasyWebHandlerTemplate.handle(ResteasyWebHandlerTemplate.java:39)
at org.jboss.resteasy.springmvc.ResteasyView.render(ResteasyView.java:112)
at
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
at
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:163)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
at
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
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:722)
|
|
From: Bill B. <bb...@re...> - 2013-06-10 00:50:39
|
If I knew what a DefferedResult was, I may be able to help you.
On 6/9/2013 8:40 PM, Arun Avanathan wrote:
> Hi,
>
> I am using a Spring MVC application with resteasy-spring.
>
> I have this simple method, which is throwing an exception when I call
> HTTP Post on the mapped URI.
>
> I am using JDK 1.7, with Jetty 8, Sevlet 3.0 web.xml. Spring
> - 3.2.3.RELEASE and resteasy-spring-2.3.6.Final.
>
> Do I need to use later versions of Rest easy?
>
> Thanks
> Arun
>
> @POST
> @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
> @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
> @Path("/print/{realmId}/customer")
> @GZIP
> @ResponseBody
> public DeferredResult<Customer> printAndEcho(@PathParam("realmId")
> String realmId,
> @QueryParam("requestId") String requestId,
> Customer customer,
> @HeaderParam("transport.type") String
> transportType) {
>
> LOGGER.info("realmId={}, requestId={}, transportType={},
> customer={}",
> new Object[]{realmId, requestId, transportType,
> ToStringBuilder.reflectionToString(customer)});
> DeferredResult<Customer> result = new DeferredResult<Customer>();
> cachedCustomer = customer;
> deferredResultMap.put(realmId+"-"+requestId, result);
>
> return result;
> }
>
>
> Exception :
>
> 2013-06-09 17:24:21,929 WARN
> [org.jboss.resteasy.core.SynchronousDispatcher#error():135] - Failed
> executing POST /sample/print/253421978/customer
> org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find
> MessageBodyWriter for response object of type:
> org.springframework.web.context.request.async.DeferredResult of media
> type: application/xml
> at org.jboss.resteasy.core.ServerResponse.writeTo(ServerResponse.java:216)
> at org.jboss.resteasy.springmvc.ResteasyView$1.handle(ResteasyView.java:96)
> at org.jboss.resteasy.springmvc.ResteasyView$1.handle(ResteasyView.java:81)
> at
> org.jboss.resteasy.springmvc.ResteasyWebHandlerTemplate.handle(ResteasyWebHandlerTemplate.java:39)
> at org.jboss.resteasy.springmvc.ResteasyView.render(ResteasyView.java:112)
> at
> org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
> at
> org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
> at
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
> at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
> at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
> at
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
> at
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
> at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
> at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:163)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
> at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
> at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
> at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> at org.eclipse.jetty.server.Server.handle(Server.java:370)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
> at
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
> at
> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
> at
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
> 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:722)
>
>
>
> ------------------------------------------------------------------------------
> How ServiceNow helps IT people transform IT departments:
> 1. A cloud service to automate IT design, transition and operations
> 2. Dashboards that offer high-level views of enterprise services
> 3. A single system of record for all IT processes
> http://p.sf.net/sfu/servicenow-d2d-j
>
>
>
> _______________________________________________
> Resteasy-developers mailing list
> Res...@li...
> https://lists.sourceforge.net/lists/listinfo/resteasy-developers
>
--
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com
|
|
From: Arun A. <aru...@gm...> - 2013-06-10 01:03:11
|
Sorry I forgot to mention that. DeferredResult ( http://static.springsource.org/spring/docs/3.2.0.BUILD-SNAPSHOT/api/org/springframework/web/context/request/async/DeferredResult.html) is Spring's way of handling Servlet 3.0 Async mechanism. I am marking the method @ResponseBody & returning DeferredResult<T> as per Spring documentation. This DeferredResult, is being completed by another thread after completing actual process under the hood. On Sun, Jun 9, 2013 at 5:50 PM, Bill Burke <bb...@re...> wrote: > If I knew what a DefferedResult was, I may be able to help you. > > On 6/9/2013 8:40 PM, Arun Avanathan wrote: > > Hi, > > > > I am using a Spring MVC application with resteasy-spring. > > > > I have this simple method, which is throwing an exception when I call > > HTTP Post on the mapped URI. > > > > I am using JDK 1.7, with Jetty 8, Sevlet 3.0 web.xml. Spring > > - 3.2.3.RELEASE and resteasy-spring-2.3.6.Final. > > > > Do I need to use later versions of Rest easy? > > > > Thanks > > Arun > > > > @POST > > @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) > > @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) > > @Path("/print/{realmId}/customer") > > @GZIP > > @ResponseBody > > public DeferredResult<Customer> printAndEcho(@PathParam("realmId") > > String realmId, > > @QueryParam("requestId") String > requestId, > > Customer customer, > > @HeaderParam("transport.type") String > > transportType) { > > > > LOGGER.info("realmId={}, requestId={}, transportType={}, > > customer={}", > > new Object[]{realmId, requestId, transportType, > > ToStringBuilder.reflectionToString(customer)}); > > DeferredResult<Customer> result = new > DeferredResult<Customer>(); > > cachedCustomer = customer; > > deferredResultMap.put(realmId+"-"+requestId, result); > > > > return result; > > } > > > > > > Exception : > > > > 2013-06-09 17:24:21,929 WARN > > [org.jboss.resteasy.core.SynchronousDispatcher#error():135] - Failed > > executing POST /sample/print/253421978/customer > > org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find > > MessageBodyWriter for response object of type: > > org.springframework.web.context.request.async.DeferredResult of media > > type: application/xml > > at > org.jboss.resteasy.core.ServerResponse.writeTo(ServerResponse.java:216) > > at > org.jboss.resteasy.springmvc.ResteasyView$1.handle(ResteasyView.java:96) > > at > org.jboss.resteasy.springmvc.ResteasyView$1.handle(ResteasyView.java:81) > > at > > > org.jboss.resteasy.springmvc.ResteasyWebHandlerTemplate.handle(ResteasyWebHandlerTemplate.java:39) > > at > org.jboss.resteasy.springmvc.ResteasyView.render(ResteasyView.java:112) > > at > > > org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) > > at > > > org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) > > at > > > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) > > at > > > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) > > at > > > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) > > at > > > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) > > at > > > org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) > > at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684) > > at > > > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448) > > at > net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:163) > > at > > > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) > > at > net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206) > > at > net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179) > > at > > > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) > > at > > > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) > > at > > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) > > at > > > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533) > > at > > > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) > > at > > > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) > > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) > > at > > > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) > > at > > > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) > > at > > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) > > at > > > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) > > at > > > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) > > at > > > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) > > at org.eclipse.jetty.server.Server.handle(Server.java:370) > > at > > > org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) > > at > > > org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) > > at > > > org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) > > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) > > at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) > > at > > > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) > > at > > > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) > > at > > > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) > > 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:722) > > > > > > > > > ------------------------------------------------------------------------------ > > How ServiceNow helps IT people transform IT departments: > > 1. A cloud service to automate IT design, transition and operations > > 2. Dashboards that offer high-level views of enterprise services > > 3. A single system of record for all IT processes > > http://p.sf.net/sfu/servicenow-d2d-j > > > > > > > > _______________________________________________ > > Resteasy-developers mailing list > > Res...@li... > > https://lists.sourceforge.net/lists/listinfo/resteasy-developers > > > > -- > Bill Burke > JBoss, a division of Red Hat > http://bill.burkecentral.com > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Resteasy-developers mailing list > Res...@li... > https://lists.sourceforge.net/lists/listinfo/resteasy-developers > |
|
From: Solomon D. <sd...@gm...> - 2013-06-10 01:22:47
|
That does seem like an interesting feature. Bill, is there anything like that DeferedResult in the JAX-RS world? Arun: Wouldn't you be able to simply use Spring MVC's REST support for that instead of RESTEasy? -Solomon On Sun, Jun 9, 2013 at 9:03 PM, Arun Avanathan <aru...@gm...>wrote: > Sorry I forgot to mention that. DeferredResult ( > http://static.springsource.org/spring/docs/3.2.0.BUILD-SNAPSHOT/api/org/springframework/web/context/request/async/DeferredResult.html) > is Spring's way of handling Servlet 3.0 Async mechanism. I am marking > the method @ResponseBody & returning DeferredResult<T> as per Spring > documentation. This DeferredResult, is being completed by another thread > after completing actual process under the hood. > > > On Sun, Jun 9, 2013 at 5:50 PM, Bill Burke <bb...@re...> wrote: > >> If I knew what a DefferedResult was, I may be able to help you. >> >> On 6/9/2013 8:40 PM, Arun Avanathan wrote: >> > Hi, >> > >> > I am using a Spring MVC application with resteasy-spring. >> > >> > I have this simple method, which is throwing an exception when I call >> > HTTP Post on the mapped URI. >> > >> > I am using JDK 1.7, with Jetty 8, Sevlet 3.0 web.xml. Spring >> > - 3.2.3.RELEASE and resteasy-spring-2.3.6.Final. >> > >> > Do I need to use later versions of Rest easy? >> > >> > Thanks >> > Arun >> > >> > @POST >> > @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) >> > @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) >> > @Path("/print/{realmId}/customer") >> > @GZIP >> > @ResponseBody >> > public DeferredResult<Customer> printAndEcho(@PathParam("realmId") >> > String realmId, >> > @QueryParam("requestId") String >> requestId, >> > Customer customer, >> > @HeaderParam("transport.type") String >> > transportType) { >> > >> > LOGGER.info("realmId={}, requestId={}, transportType={}, >> > customer={}", >> > new Object[]{realmId, requestId, transportType, >> > ToStringBuilder.reflectionToString(customer)}); >> > DeferredResult<Customer> result = new >> DeferredResult<Customer>(); >> > cachedCustomer = customer; >> > deferredResultMap.put(realmId+"-"+requestId, result); >> > >> > return result; >> > } >> > >> > >> > Exception : >> > >> > 2013-06-09 17:24:21,929 WARN >> > [org.jboss.resteasy.core.SynchronousDispatcher#error():135] - Failed >> > executing POST /sample/print/253421978/customer >> > org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find >> > MessageBodyWriter for response object of type: >> > org.springframework.web.context.request.async.DeferredResult of media >> > type: application/xml >> > at >> org.jboss.resteasy.core.ServerResponse.writeTo(ServerResponse.java:216) >> > at >> org.jboss.resteasy.springmvc.ResteasyView$1.handle(ResteasyView.java:96) >> > at >> org.jboss.resteasy.springmvc.ResteasyView$1.handle(ResteasyView.java:81) >> > at >> > >> org.jboss.resteasy.springmvc.ResteasyWebHandlerTemplate.handle(ResteasyWebHandlerTemplate.java:39) >> > at >> org.jboss.resteasy.springmvc.ResteasyView.render(ResteasyView.java:112) >> > at >> > >> org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) >> > at >> > >> org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) >> > at >> > >> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) >> > at >> > >> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) >> > at >> > >> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) >> > at >> > >> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838) >> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) >> > at >> > >> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) >> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) >> > at >> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684) >> > at >> > >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448) >> > at >> net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:163) >> > at >> > >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) >> > at >> net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206) >> > at >> net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179) >> > at >> > >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) >> > at >> > >> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) >> > at >> > >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) >> > at >> > >> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533) >> > at >> > >> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) >> > at >> > >> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) >> > at >> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) >> > at >> > >> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) >> > at >> > >> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) >> > at >> > >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) >> > at >> > >> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) >> > at >> > >> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) >> > at >> > >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) >> > at org.eclipse.jetty.server.Server.handle(Server.java:370) >> > at >> > >> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) >> > at >> > >> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) >> > at >> > >> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) >> > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) >> > at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) >> > at >> > >> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) >> > at >> > >> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) >> > at >> > >> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) >> > 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:722) >> > >> > >> > >> > >> ------------------------------------------------------------------------------ >> > How ServiceNow helps IT people transform IT departments: >> > 1. A cloud service to automate IT design, transition and operations >> > 2. Dashboards that offer high-level views of enterprise services >> > 3. A single system of record for all IT processes >> > http://p.sf.net/sfu/servicenow-d2d-j >> > >> > >> > >> > _______________________________________________ >> > Resteasy-developers mailing list >> > Res...@li... >> > https://lists.sourceforge.net/lists/listinfo/resteasy-developers >> > >> >> -- >> Bill Burke >> JBoss, a division of Red Hat >> http://bill.burkecentral.com >> >> >> ------------------------------------------------------------------------------ >> How ServiceNow helps IT people transform IT departments: >> 1. A cloud service to automate IT design, transition and operations >> 2. Dashboards that offer high-level views of enterprise services >> 3. A single system of record for all IT processes >> http://p.sf.net/sfu/servicenow-d2d-j >> _______________________________________________ >> Resteasy-developers mailing list >> Res...@li... >> https://lists.sourceforge.net/lists/listinfo/resteasy-developers >> > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Resteasy-developers mailing list > Res...@li... > https://lists.sourceforge.net/lists/listinfo/resteasy-developers > > |
|
From: Bill B. <bb...@re...> - 2013-06-10 12:37:43
|
Ya, we're not supporting Spring's DeferredResult... You can take a look at the Resteasy Async API (2.3.x) or JAX-RS 2.0's Async API (Resteasy 3.0). Don't think it is exactly the same, but you can probably do what you need here. On 6/9/2013 9:22 PM, Solomon Duskis wrote: > That does seem like an interesting feature. Bill, is there anything > like that DeferedResult in the JAX-RS world? > > Arun: Wouldn't you be able to simply use Spring MVC's REST support for > that instead of RESTEasy? > > -Solomon > > > On Sun, Jun 9, 2013 at 9:03 PM, Arun Avanathan <aru...@gm... > <mailto:aru...@gm...>> wrote: > > Sorry I forgot to mention that. DeferredResult > (http://static.springsource.org/spring/docs/3.2.0.BUILD-SNAPSHOT/api/org/springframework/web/context/request/async/DeferredResult.html) > is Spring's way of handling Servlet 3.0 Async mechanism. I am > marking the method @ResponseBody & returning DeferredResult<T> as > per Spring documentation. This DeferredResult, is being completed by > another thread after completing actual process under the hood. > > > On Sun, Jun 9, 2013 at 5:50 PM, Bill Burke <bb...@re... > <mailto:bb...@re...>> wrote: > > If I knew what a DefferedResult was, I may be able to help you. > > On 6/9/2013 8:40 PM, Arun Avanathan wrote: > > Hi, > > > > I am using a Spring MVC application with resteasy-spring. > > > > I have this simple method, which is throwing an exception > when I call > > HTTP Post on the mapped URI. > > > > I am using JDK 1.7, with Jetty 8, Sevlet 3.0 web.xml. Spring > > - 3.2.3.RELEASE and resteasy-spring-2.3.6.Final. > > > > Do I need to use later versions of Rest easy? > > > > Thanks > > Arun > > > > @POST > > @Consumes({MediaType.APPLICATION_XML, > MediaType.APPLICATION_JSON}) > > @Produces({MediaType.APPLICATION_XML, > MediaType.APPLICATION_JSON}) > > @Path("/print/{realmId}/customer") > > @GZIP > > @ResponseBody > > public DeferredResult<Customer> > printAndEcho(@PathParam("realmId") > > String realmId, > > @QueryParam("requestId") > String requestId, > > Customer customer, > > > @HeaderParam("transport.type") String > > transportType) { > > > > LOGGER.info("realmId={}, requestId={}, transportType={}, > > customer={}", > > new Object[]{realmId, requestId, transportType, > > ToStringBuilder.reflectionToString(customer)}); > > DeferredResult<Customer> result = new > DeferredResult<Customer>(); > > cachedCustomer = customer; > > deferredResultMap.put(realmId+"-"+requestId, result); > > > > return result; > > } > > > > > > Exception : > > > > 2013-06-09 17:24:21,929 WARN > > [org.jboss.resteasy.core.SynchronousDispatcher#error():135] - > Failed > > executing POST /sample/print/253421978/customer > > org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: > Could not find > > MessageBodyWriter for response object of type: > > org.springframework.web.context.request.async.DeferredResult > of media > > type: application/xml > > at > org.jboss.resteasy.core.ServerResponse.writeTo(ServerResponse.java:216) > > at > org.jboss.resteasy.springmvc.ResteasyView$1.handle(ResteasyView.java:96) > > at > org.jboss.resteasy.springmvc.ResteasyView$1.handle(ResteasyView.java:81) > > at > > > org.jboss.resteasy.springmvc.ResteasyWebHandlerTemplate.handle(ResteasyWebHandlerTemplate.java:39) > > at > org.jboss.resteasy.springmvc.ResteasyView.render(ResteasyView.java:112) > > at > > > org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) > > at > > > org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) > > at > > > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) > > at > > > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) > > at > > > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) > > at > > > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) > > at > > > org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) > > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684) > > at > > > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448) > > at > net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:163) > > at > > > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) > > at > net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206) > > at > net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179) > > at > > > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) > > at > > > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) > > at > > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) > > at > > > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533) > > at > > > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) > > at > > > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) > > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) > > at > > > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) > > at > > > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) > > at > > > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) > > at > > > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) > > at > > > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) > > at > > > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) > > at org.eclipse.jetty.server.Server.handle(Server.java:370) > > at > > > org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) > > at > > > org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) > > at > > > org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) > > at > org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) > > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) > > at > > > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) > > at > > > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) > > at > > > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) > > 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:722) > > > > > > > > > ------------------------------------------------------------------------------ > > How ServiceNow helps IT people transform IT departments: > > 1. A cloud service to automate IT design, transition and > operations > > 2. Dashboards that offer high-level views of enterprise services > > 3. A single system of record for all IT processes > > http://p.sf.net/sfu/servicenow-d2d-j > > > > > > > > _______________________________________________ > > Resteasy-developers mailing list > > Res...@li... > <mailto:Res...@li...> > > https://lists.sourceforge.net/lists/listinfo/resteasy-developers > > > > -- > Bill Burke > JBoss, a division of Red Hat > http://bill.burkecentral.com > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Resteasy-developers mailing list > Res...@li... > <mailto:Res...@li...> > https://lists.sourceforge.net/lists/listinfo/resteasy-developers > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Resteasy-developers mailing list > Res...@li... > <mailto:Res...@li...> > https://lists.sourceforge.net/lists/listinfo/resteasy-developers > > -- Bill Burke JBoss, a division of Red Hat http://bill.burkecentral.com |