|
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 |