Re: ClassCastException using Sun's jsf-portlet.jar in Pluto 2.0

Ate Douma <[email protected]> Fri, 23 Apr 2010 16:51:13 +0200
Newsgroups gmane.comp.jakarta.pluto.user
Message-ID <[email protected]>
On 04/23/2010 04:25 PM, Rossen Stoyanchev wrote:
> Hi-
>
> I can confirm I no longer see the issue recorded in PLUTO-591. Thanks
> for the quick fix!
Good to hear, I resolved the issue as fixed.

>
>
> I now see another issue. I don't think is related to Pluto but I'll
> paste it here anyway in case someone has an idea:
>
> Caused by: java.lang.ClassCastException:
> org.apache.pluto.container.impl.RenderResponseImpl cannot be cast to
> javax.servlet.ServletResponse
> at
> com.sun.facelets.FaceletViewHandler.createResponseWriter(FaceletViewHandler.java:370)
>
> at
> com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
> at org.springframework.faces.webflow.JsfView.render(JsfView.java:89)
> at org.springframework.webflow.engine.ViewState.render(ViewState.java:282)
> at org.springframework.webflow.engine.ViewState.doEnter(ViewState.java:186)
> at org.springframework.webflow.engine.State.enter(State.java:194)
> at org.springframework.webflow.engine.Flow.start(Flow.java:535)
> at
> org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:364)
>
> at
> org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:222)
>
>
> Rendering is based on Facelets (not JSP's) and the Sun JSF Portlet
> bridge is version 1.2.5.

That is a typical mistake made by portlet bridge solutions which assume a PortletRequest/Response is extending ServletRequest/Response.
Pluto 1.x actually implemented it in that way (and a lot of other portlet containers).
However the portlet spec doesn't require that at all, and with the implementation for Portlet Spec 2.0 (which is a lot more demanding) we 
discovered that extending ServletRequest/ServletResponse for the implementation of the PortletRequest/PortletResponse in fact causes many 
(logical) problems practically impossible to solve.
So, Pluto 2.x no uses "cleanroom" implementations of PortletRequest/PortletResponse and you cannot cast them anymore to 
ServletRequest/ServletResponse.

This therefore really needs to be solved by the Sun JSF Portlet bridge.

Regards,

Ate

>
> Thanks,
> Rossen
>