Ajax Richfaces 4.2和PortletBridge 3.1的Liferay portlet问题

Ajax Richfaces 4.2和PortletBridge 3.1的Liferay portlet问题,ajax,richfaces,liferay,portlet,portletbridge,Ajax,Richfaces,Liferay,Portlet,Portletbridge,我们有一个应用程序,使用JSF1.2、RichFaces 3.3.3.Final和PortletBridge 2.1.1为Liferay 6.0.6提供了大量Portlet,一切正常。我们决定用RichFaces 4.2.3.Final和PortletBridge 3.1.2将我们的东西升级到JSF2。在我们尝试使用一些支持ajax的命令按钮(a4j:commandButton或带有f:ajax的h:commandButton)进行导航之前,一切似乎都很好:在这种情况下,portlet进行导航,

我们有一个应用程序,使用JSF1.2、RichFaces 3.3.3.Final和PortletBridge 2.1.1为Liferay 6.0.6提供了大量Portlet,一切正常。我们决定用RichFaces 4.2.3.Final和PortletBridge 3.1.2将我们的东西升级到JSF2。在我们尝试使用一些支持ajax的命令按钮(a4j:commandButton或带有f:ajax的h:commandButton)进行导航之前,一切似乎都很好:在这种情况下,portlet进行导航,但整个Liferay屏幕消失,只有JSF组件保留在屏幕上。如果我们再次尝试使用某些导航,很快就会失败(尝试1-3次后),但有以下例外:

[#|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
它还记录了一些有趣的事情,如:

[#|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.|#]
更新:
经过一番挖掘之后,我们意识到使用ajax进行导航是一种非常糟糕的做法(即使它与JSF1.2和RichFaces 3.3一起使用),因此更改了我们的模板,以避免到处出现这种情况。而且也从JBoss Porlettbridge改为Liferay自己的Faces Bridge,看起来效果不错。上述所有异常都已消失,导航正常工作。

如果您使用的是Liferay 6.0.6,则需要使用Liferay Faces 3.0.x,而不是3.1.x。有关更多信息,请参阅wiki文章。

我们使用的是JBoss PortletBridge 3.1.2,而不是Liferay Faces Bridge。但与此同时,我们意识到问题的根源可能是JBoss PortletBridge不能与Liferay环境中的其他组件很好地协同工作。我们尝试了Liferay Faces Bridge,似乎更好了。