0

We have an application with numerous portlets for Liferay 6.0.6 using JSF1.2 with RichFaces 3.3.3.Final and PortletBridge 2.1.1 and everything was working fine. We decided to upgrade our stuff to JSF2 with RichFaces 4.2.3.Final and PortletBridge 3.1.2. Everything seemed to be fine until we tried to use some ajax-enabled command buttons (a4j:commandButton or h:commandButton with f:ajax) for navigation: in that case the portlet does the navigation but the whole Liferay screen disappears and only the JSF components remain on screen. If we try to use some navigation again, it'll soon fail (after 1-3 tries) with this exception:

[#|2013-05-08T14:15:33.104+0200|SEVERE|glassfish3.0.1|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=26;_ThreadName=Thread-1;|Unblocking keep-alive exception
java.lang.IllegalArgumentException: Request header is too large

It also logs some interesting things like this:

[#|2013-05-08T14:11:42.203+0200|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=26;_ThreadName=Thread-1;|Unable to find component with clientId 'pb_richtest_WAR_richtest_INSTANCE_HlC1__j_id1:j_id2', no need to remove it.|#]

UPDATE: After some digging we realized it's quite a bad practice to use ajax for navigation (even if it worked with JSF1.2 and RichFaces 3.3), so changed our templates to avoid this everywhere. And also changed from JBoss PorletBridge to Liferay's own Faces Bridge and it seems to work fine. All the exceptions above is gone and the navigation works as it should.

4

1 回答 1

0

如果您使用的是 Liferay 6.0.6,那么您需要使用 Liferay Faces 3.0.x,而不是 3.1.x。有关详细信息,请参阅Liferay Faces 版本方案wiki 文章。

于 2013-05-09T14:41:20.150 回答