Thanks, Daniel, for the highlight about Template.
How does one include the params in the URL, then, for Viewable?
Is there a way to do that?
On Thu, Apr 14, 2011 at 7:52 PM, Daniel Larsson
<daniel.j.larsson_at_gmail.com>wrote:
> The parameter to Viewable is not an URL, but a relative path. If you give a
> name, such as "foo", it will look for pages named
> <package-as-path>/<Classname>/foo.jsp (the actual lookup is a bit more
> sophisticated than that, actually, but google around, or turn on more
> verbose logging to see what paths it searches to find your JSP file).
>
> So, if your resource class is com.example.Resource, and you return new
> Viewable("foo") name your JSP file /com/example/Resource/foo.jsp. This is
> relative your web root.
>
>
> 2011/4/15 Arthur Yeo <artyyeo_at_gmail.com>
>
>> OK, I found something in some older threads and looks looks like the way
>> to do this is to return a Viewable object.
>>
>> I changed the server code to do this now:
>>
>> return new Viewable("http://localhost:8080/MyPage.jsp", MyObject);
>>
>> And, the JSP page has this code embedded to show what's coming thru:
>> <h1><% out.println ("New data==" + (MyObject)
>> request.getAttribute("someField")); %></h1>
>>
>> Questions:
>>
>> 1. Do I need to declare @Produces ("application/html") or is it
>> something else since I am returning a Viewable object?
>> 2. What's causing this run time error?
>>
>>
>> Here's the run-time error:
>>
>> PWC1406: Servlet.service() for servlet ServletAdaptor threw exception
>> java.io.IOException: The template name, http://localhost:8080/MyPage.jsp,
>> could not be resolved to a fully qualified template name at
>> com.sun.jersey.server.impl.template.ViewableMessageBodyWriter.writeTo(ViewableMessageBodyWriter.java:74)
>> at
>> com.sun.jersey.server.impl.template.ViewableMessageBodyWriter.writeTo(ViewableMessageBodyWriter.java:58)
>> at
>> com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:289)
>> at
>> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1029)
>> at
>> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:941)
>> at
>> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:932)
>> at
>> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:384)
>> at
>> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:451)
>> at
>> com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:632)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at
>> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
>> at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
>> at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
>> at
>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
>> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) at
>> com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
>> at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
>> at
>> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
>> at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
>> at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) at
>> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) at
>> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
>> at
>> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
>> at
>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
>> at
>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
>> at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
>> at
>> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
>> at
>> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
>> at com.sun.grizzly.ContextTask.run(ContextTask.java:69) at
>> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
>> at
>> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
>> at java.lang.Thread.run(Thread.java:662)
>>
>>
>> On Thu, Apr 14, 2011 at 2:55 PM, Arthur Yeo <artyyeo_at_gmail.com> wrote:
>>
>>> At the end of a servicing a Jersey request, I need to do these 2 things:
>>>
>>> 1. redirect it to a JSP page
>>> 2. and include a few pieces of data wrapped in an object for that JSP
>>> page to use
>>>
>>> What are the best practice approaches to implementing this?
>>>
>>> Currently, I am doing this ...
>>>
>>> ---------------
>>> ResponseBuilder builder = Response.seeOther(URI.create("
>>> http://localhost:8080/My.jsp")) );
>>> builder.entity(MyObject);
>>> if (EverythingIsSunny == 1) {
>>> return builder.build();
>>> } else {
>>> return Response.seeOther(URI.create("
>>> http://localhost:8080/SomeErrorHandlingPage.html")).build();
>>> }
>>> ------------------
>>>
>>> When I ran it, I get a runtime exception that looks like the one below.
>>> Any recommendations?
>>>
>>> javax.ws.rs.WebApplicationException
>>> at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:268)
>>> at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1029)
>>> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:941)
>>> at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:932)
>>> at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:384)
>>> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:451)
>>> at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:632)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
>>> at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
>>> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
>>> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
>>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
>>> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
>>> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
>>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
>>> at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
>>> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
>>> at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
>>> at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
>>> at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
>>> at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
>>> at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
>>> at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
>>> at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
>>> at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
>>> at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
>>> at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
>>> at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
>>> at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
>>> at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
>>> at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
>>> at java.lang.Thread.run(Thread.java:662)
>>>
>>>
>>> --
>>> Arthur Y.
>>>
>>
>>
>>
>> --
>> Arthur Y.
>>
>
>
--
Arthur Y.