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