我有一个 JSF2 (Richfaces 4.1.0) 项目在 eclipse 中运行。 我正在尝试使用 mojarra jsf 实现 (2.2.0) 在 WAS 8.5 上运行它。 然后 lib 是由 Maven 提供的,但服务器似乎覆盖了它们,因为在控制台中我可以读取 Myfaces 已加载。
我想知道为什么会这样做?如何使项目使用 mojarra 而不使用管理控制台中的共享库?
这是代码的 Maven 相关部分:
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>javax.faces-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.0</version>
</dependency>
提前致谢
最佳答案
我写了这个blog演示如何让 websphere 8.5 使用 mojarra 而不是 myfaces。
- 将 Mojarra 监听器添加到所需的 web.xml 文件中。
<listener><listener-class>com.sun.faces.config.ConfigureListener</listener-class></listener>
- 将 Mojarra JSF 实现(即 javax.faces-2.1.24.jar、jsf-api-2.1.24.jar 和 jsf-impl-2.1.24.jar)添加到环境 > 共享库中。
- javax.faces-2.1.24.jar(GroupId:org.glassfish)
- jsf-api-2.1.24.jar(GroupId:com.sun.faces)
- jsf-impl-2.1.24.jar(GroupId:com.sun.faces)
- 配置共享库后,必须重新启动 Websphere 服务器。
- 部署项目后,在企业应用程序 > staaec-web-1_0_10-SNAPSHOT_war(您的项目) > 类加载器。必须选择类加载器顺序(首先使用本地类加载器加载的类(最后是父级))
- 要在项目中引用共享库,您必须转至企业应用程序 > staaec-web-1_0_10-SNAPSHOT_war > 共享库引用 > 共享库映射,以将共享库映射到您的项目。
- 开始您的申请。
关于richfaces - 如何让 websphere 8.5 使用 mojarra 而不是 myfaces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24258561/