在Websphere Application Server 8中使用mojarra实现

时间:2012-07-17 05:01:52

标签: primefaces liferay mojarra websphere-8

我认为我被这些想法所困扰。我正在尝试将liferay portlet从weblogic移动到WAS 8.在weblogic上,我一直在使用mojorra实现JSF 2.0和primefaces作为组件库。我在WAS上安装了primefaces,当我试图移动portlet时,问题就开始出现了。

第一个问题是WAS不断尝试将myfaces用作JSF实现 - 我知道这是因为myfaces抛出异常:

  

引起:java.lang.IllegalArgumentException:   factoryName'javax.faces.view.facelets.FaceletCacheFactory”               在javax.faces.FactoryFinder.checkFactoryName(FactoryFinder.java:383)

我在maven pom.xml文件中有以下依赖项:

<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-api</artifactId>
    <version>2.1.2</version>
</dependency>
<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-impl</artifactId>
    <version>2.1.2</version>
</dependency>

对于WAS应用程序,我设置类加载器以首先加载我的类。但这没有帮助。为了确保我为服务器配置了新的类加载器 - 但是重新设置了重复。我最后的想法是将mojarra jar定义为共享库 - 但后来我得到了ClassFormatException(我没有时间去调查它)。

有什么想法吗?


将mojorra类添加到WAR并更改类加载器后,我有异常:

  

[7/17/12 18:52:25:072 CEST] 0000002c config E严重错误   部署期间:                                        com.sun.faces.config.ConfigurationException:CONFIGURATION FAILED!   factoryName'javax.faces.view.facelets.FaceletCacheFactory'               在com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:375)               at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)               在com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1649)               在com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:410)

我跟踪了异常并发现只有myfaces实现的工厂查找器可能我应该在项目旁边添加其他依赖项(jsf-api,jsf-impl)?


将jsf库指定为共享库并指向它们作为我的战争的参考 - 初始化成功没有任何错误 - 其他问题是现在liferay抛出异常:

  

01:21:16,956 ERROR [LiferayFacesContext:61]实例未初始化    - 调用者可能是静态的01:21:16,960错误[LiferayLocalePhaseListener:87]       显示java.lang.NullPointerException       在com.liferay.faces.portal.lifecycle.LiferayLocalePhaseListener.setLocale       (LiferayLocalePhaseListener.java:67)

也许是因为我还应该将liferay库定义为共享 - 我会在几秒钟内尝试它。

以下例外情况是:

  

引起:java.lang.NullPointerException at   com.liferay.faces.bridge.renderkit.html_basic.HeadRendererBridgeImpl.encodeBegin   (HeadRendererBridgeImpl.java:133)

不知道这两个异常是否相互关联 - 但结果是我的portlet不起作用:(

1 个答案:

答案 0 :(得分:1)

完全可以在WebSphere中使用一些自定义类加载器魔术。请在此处查看此主题:

http://forum.primefaces.org/viewtopic.php?f=3&t=6860