I'm trying out Richfaces 3.3.3.FINAL in WebSphere Portal 6.1.5 running in WebSphere Application Server 126.96.36.199, using the 2.0.0.FINAL JBoss portlet bridge. The "echo" portlet demo appears to work correctly, however in the WebSphere logs I see the following error message every time an ajax request is fired:
com.ibm.ws.portletcontainer.core.impl.PortletRequestImpl setCharacterEncoding EJPPC0170E: Cannot set character encoding after HTTP-Body has been accessed
Now I think this is something to do with the IBM implementation of... something... so I started stepping down through the source code to find exactly where the message is coming out. I traced the call down to
where it appears that getFacesLifecycle() is returning an instance of
which in turn calls phase.doPhase for each of the JSF phases. The error message mentioned above appears to be thrown when
is called. But I was thinking that getFacesLifecycle() should have returned an instance of
instead of the Sun implementation. So, is the observed behaviour correct, or is there a problem somewhere in my configuration of RichFaces / the bridge, or is it all still further down the stack inside WebSphere somewhere?
Well, I was able to suppress the error message by implementing my own Filter and ResourceRequest/Response wrappers for the RESOURCE_PHASE, as mentioned in a thread over on the IBM forums. So I guess the portlet bridge is behaving correctly.
I would like to know, just out of interest, why the bridge is using the sun Lifecycle implementation rather than the PortletLifecycleImplementation. Can anyone shed some light on the matter?
I'm new to Portlets and facing also this Error
[02.11.11 09:21:28:944 CET] 00000030 PortletReques E com.ibm.ws.portletcontainer.core.impl.PortletRequestImpl setCharacterEncoding EJPPC0170E: Es kann keine Zeichencodierung nach dem Zugriff auf HTTP-Body gesetzt werden.
in a remote Portlet (using JSF 1.2 and Facelets) on Websphere 188.8.131.52 consumd via IBM WSRP 2.0 from Liferay Portal.
In the "thread over on the IBM forums" I understand that a ResourceRequest/Response wrappers could be useful for me,
but the code provided in the .war files is related to IBM's portletbridge, that is not working for me.
Would you be so kind and provide some code for me, how you implemented your own Filter and ResourceRequest/Response wrappers for the RESOURCE_PHASE.