是否有人在Payara 5 / Glassfish 5上使用过Icefaces 3.3应用程序?

时间:2019-04-24 12:01:58

标签: jsf icefaces payara icefaces-3

我们正在将一个应用程序从Glassfish 3.1.2.2移植到Payara5。该应用程序使用经确认可与JSF 2.1一起使用的Icefaces 3.3.0。

我们有两种选择可以在Payara 5中部署它,使用应该向后兼容的内置JSF 2.3.x版本,或者将JSF 2.1.x与Icefaces捆绑在耳边的战争中。 到目前为止,我已经尝试了每种方法,但是我都遇到了问题。

当使用一个包含JSF 2.3.x版本的服务器时,只要页面执行ajax调用(在icefaces世界中这是部分提交),那么我们会看到错误:

javax.faces.FacesException: Cannot add the same component twice: v9oeh233_icefaces_config

环顾四周通常意味着com.sun.faces.config.ConfigureListener已经启动了两次,但是在这种情况下,我们的web.xml中没有包含侦听器,并且我没有看到任何错误提示它已经启动了两次。如果我将其包含在web.xml中,则没有任何区别,我们仍然会看到错误。在web.xml中设置的servlet规范也被指定为2.5,建议使用另一个线程来阻止该监听器由Servlet 3.0自动初始化。

捆绑JSF 2.1.x时,我还必须捆绑焊接核心jar以使其正常工作,并使用白名单包装功能来加载EJB jar项目。一旦启动,我就可以访问应用程序中的某些页面,但是一旦进入使用自定义taglib的页面,就会出现以下错误:

java.lang.NoSuchMethodException: com.thirddegree.shared.utils.UserHasRoleTagHandler.<init>(javax.faces.view.facelets.TagConfig)

该类肯定存在,并且构造函数已经存在,因为它对glassfish 3.1.2.2均有效,因此可能与类版本控制有关,但我似乎无法弄清楚。

是否有人尝试过将icefaces 3.3.0迁移到Payara 5或Glassfish 5,如果是这样,您是否遇到了类似的问题或有任何解决方案?还有关于我可能可以尝试的事情的建议吗?

非常感谢, 达伦

0 个答案:

没有答案