Re: Problem with Pluto Portlets and the Sun JSF Portlets
Eric Dalquist <[email protected]> Tue, 12 Aug 2008 12:14:00 -0500
| Newsgroups | gmane.comp.jakarta.pluto.user |
|---|---|
| Organization | DoIT |
| Message-ID | <[email protected]> |
It would be interesting to see what LifecycleImpl.java:353 is trying to do. Do you have a pointer to the source? -Eric Domazlicky, Eric wrote: > > Ok here is the latest on the issue. I resolved the last error to be a > missing library. However now I am now getting this error: > > > > Aug 12, 2008 7:58:49 AM org.apache.catalina.core.ApplicationDispatcher > invoke > > SEVERE: Servlet.service() for servlet uPortalTest threw exception > > java.lang.NullPointerException > > at > com.sun.faces.portlet.LifecycleImpl.clearState(LifecycleImpl.java:353) > > at > com.sun.faces.portlet.LifecycleImpl.restore(LifecycleImpl.java:380) > > at > com.sun.faces.portlet.LifecycleImpl.render(LifecycleImpl.java:231) > > at > org.apache.portals.bridges.jsf.FacesPortlet.process(FacesPortlet.java:517) > > at > org.apache.portals.bridges.jsf.FacesPortlet.doView(FacesPortlet.java:323) > > at > javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247) > > at > javax.portlet.GenericPortlet.render(GenericPortlet.java:175) > > at > org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:208) > > at > org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:139) > > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:690) > > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) > > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691) > > at > org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594) > > at > org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505) > > at > org.apache.pluto.core.DefaultPortletInvokerService.invoke(DefaultPortletInvokerService.java:167) > > at > org.apache.pluto.core.DefaultPortletInvokerService.render(DefaultPortletInvokerService.java:101) > > at > org.apache.pluto.core.PortletContainerImpl.doRender(PortletContainerImpl.java:173) > > at > org.jasig.portal.channels.portlet.SpringPortletChannelImpl.render(SpringPortletChannelImpl.java:480) > > at > org.jasig.portal.channels.portlet.CSpringPortletAdaptor.renderCharacters(CSpringPortletAdaptor.java:186) > > at > org.jasig.portal.ChannelRenderer$Worker.execute(ChannelRenderer.java:545) > > at > org.jasig.portal.utils.threading.BaseTask.run(BaseTask.java:27) > > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > > at > java.util.concurrent.FutureTask.run(FutureTask.java:138) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > > at java.lang.Thread.run(Thread.java:619) > > > > > > This is what leads me to the conclusion that Apache Portlet Bridge and > the Sun JSF Implementation just don't get along. Any other ideas? > > > > *From:* Eric Dalquist [mailto:[email protected]] > *Sent:* Wednesday, August 06, 2008 5:33 PM > *To:* [email protected] > *Subject:* Re: Problem with Pluto Portlets and the Sun JSF Portlets > > > > That may be a uPortal issue. One of the ways uPortal attempts to catch > context loading problems is if content is written to the response > object passed to Pluto when initializing a portlet window. The Faces > bridge portlet must do this. The exception message should have > included the content that was written out, perhaps you could include > that in an email? > > -Eric > > Domazlicky, Eric wrote: > > Ok I realized my error I was using the wrong portlet-class from the > Apache Portlet Bridge. I was using the GenericPortlet bridge when I > should have been using the FacesPortlet bridge. My test Sun JSF > Portlet now gets a totally different error that I suspect is uPortal > related but maybe it's Pluto?? > > "PortletLoadFailureException: Content was written to response during > loading of portlet window..[].. Response Content: The requested > resource /PlutoInvoker/TestPortlet is not available" > > > > > > > > *From:* Michael Freedman [mailto:[email protected]] > *Sent:* Wednesday, August 06, 2008 4:09 PM > *To:* [email protected] <mailto:[email protected]> > *Subject:* Re: Problem with Pluto Portlets and the Sun JSF Portlets > > > > If you are using the Bridge I pointed you at it also has the benefit > of being Faces impl independent. It will run with the Faces 1.2 > RI/Sun's Faces impl. In fact I do most of my testing with a version > of the RI. > -Mike- > > Domazlicky, Eric wrote: > > Well the Apache Bridge seems to work. Unfortunately though NetBean's > Visual Designer seems to be tied to Sun JSF's so that means you can't > use the Designer to design a Portlet. I can get a pure MyFaces example > portlet to work using the Apache JSF Bridge however so at least I can > confirm that Faces can work under uPortal/PLUTO. > > > > > > *From:* Michael Freedman [mailto:[email protected]] > *Sent:* Wednesday, August 06, 2008 2:07 PM > *To:* [email protected] <mailto:[email protected]> > *Subject:* Re: Problem with Pluto Portlets and the Sun JSF Portlets > > > > Definitely let me know if you run into any problems running your > portlet with this bridge -- the JSR is supposed to define standard > behavior for all bridges -- but obviously there is/was alot of > existing prior art so I am interested in seeing if/what complications > occur when users migrate so I can determine if its an issue related to > specific implementation dependent function in the legacy bridge or the > standard's definition needs expanding. > -Mike- > > Domazlicky, Eric wrote: > > Thanks I'll give the Apache portlet-bridge a try and see what I can find. > > > > *From:* Michael Freedman [mailto:[email protected]] > *Sent:* Wednesday, August 06, 2008 1:47 PM > *To:* [email protected] <mailto:[email protected]> > *Subject:* Re: Problem with Pluto Portlets and the Sun JSF Portlets > > > > Request and Response wrapping is not supported in the Portlet 1.0 (JSR > 168) standard hence the use of a request wrapper by the Sun JSF bridge > ( it is the Sun bridge, right?) is implementation dependent and can > only be assumed to work in a Sun portlet container. Instead, try the > JSR 301 Bridge whose (early) Reference Implementation is on Apache > (http://myfaces.apache.org/portlet-bridge/index.html). I would > suggest getting the sources and building yourself as the last release > was posted coincident with the last early draft earlier this year and > things have progressed a bit since then. (Though that binary release > is also stable and fully functional for most uses). Note: this impl > is intended to be portlet container independent. It doesn't rely on > wrapping. > > When you look at this Apache project you will notice there are two > code lines. The JSR is producing a spec and impl for both portlet 1.0 > and portlet 2.0 with JSF 1.2. Portlet 2.0 (JSR 286) does define > wrapping, hence its the portlet 2.0 bridge version that wanted to use > wrapping and hit the bug referenced by Craig. > -Mike- > > [email protected] <mailto:[email protected]> wrote: > > PLUTO-478 covers this issue. It was reported by Mike Freedman, spec > lead of JSR-301, the JSF-Portlet Bridge. > > > > Any fix to this issue should be done on the 1.1.x and 2.0-refactoring > branch and the trunk. > /Craig > > > > > > [email protected] wrote: ----- > > To: [email protected] > <mailto:[email protected]> > From: [email protected] <mailto:[email protected]> > Date: 08/05/2008 07:29PM > Subject: Re: Problem with Pluto Portlets and the Sun JSF Portlets > > > I had directed Eric over here from the uPortal lists. > > > > It appears that the JSF-Portlet library adds a response wrapper > before > > calling the request dispatcher. Does anyone here know if that is > allowed > > under JSR-168? There is no mention I can find in the spec or > errata. I > > do know in 286 explicit wrapper classes were added that mimic the > > servlet API wrapper classes but that is all I've been able to find. > > Should this be viewed as a Pluto bug or a JSF-Portlet bug? > > > > -Eric > > I would expect the PortletRequestDispatcher.include() should > accept any > implementation of PortletRequest/Response, but that is probably not > guaranteed by the spec. Even if this is not a Pluto bug, I wonder > if a > simple fix might be to use a ThreadLocal to store the internal > request/response objects when o.a.p.core.PortletServlet passes the > request > off to the portlet, rather than using wrapper classes. > > Actually, as I look at the code, I wonder if > PortletRequestDispatcherImpl.include should wrap the > PortletRequest/Response objects in adapters that implement > HttpServletRequest/Response rather than unwrap them to pull out the > internal implementation. That way, the client's wrapper classes could > still function as expected. I could put together a patch for this > if you > think it is a good idea. > > -- Ben > > P.S. - I'm replying to pluto-user, but I wonder if this is more > appropriate for pluto-dev? > > >
smime.p7s
(application/x-pkcs7-signature, 3.3 KB) - not displayed