JSF 2.0 能否与 WebSphere Application Server 版本 7.x 一起使用?
如果是这样,怎么做?
JSF 2.0 能否与 WebSphere Application Server 版本 7.x 一起使用?
如果是这样,怎么做?
WebSphere Infocenter指出,更改为替代 JSF 实现的正确方法是创建一个启用了隔离类加载器选项的 WebSphere 共享库。
任何需要 JSF 2 的模块都将与新的共享库相关联,然后应用程序将从 JSF 2 而不是 JSF 1.2 开始。
Websphere 附带 JSF 1.2.something,默认情况下会加载它。要使用不同的 JSF 库(或 WS 提供的任何其他库,例如 commons-logging),您需要更改类加载器确定位置优先级的方式。他们称其为“最后的父级”,这意味着加载您的库,然后加载 WS 版本。
按照 IBM 的建议,逐步将 WebSphere Application Server v7 上的 MyFaces 2.0 设置为共享库: http ://wasbehindtheglass.blogspot.co.uk/
我为 Majorra/JSF 2.0.4 应用了类似的步骤,并仅使用 jsf-api.jar 和 jsf-impl.jar 创建了一个共享库。正如@Ian McLaird 所说,需要 WAS 7.0.0.19 和 JSF 2.0.4。JSF 2.1.x 需要 Servlet 3,WAS7 不支持
这几天我一直在努力解决这个问题。这是我解决它的方法。
使用以下库:javax.faces-2.1.7.jar
如果您使用的是 PrimeFaces 3.1:primefaces-3.1.1.jar
应用程序服务器实例:类加载 - 父级最后
Enterprise Application instance (war Module): Class Loading - Parent Last
确保删除所有 Servlet 容器库,例如 Tomcat 所需的那些。
以下为我工作
更改 web.xml 如下
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
而已 。
我的经验:
-> WAS 7.0.0.11 在 Windows 上
-> 我的 War 应用程序的 WEB-INF/lib 中的 javax.faces-2.0.11.jar
-> WAS 共享库与 javax.faces-2.0.11.jar 和隔离类加载器
-> WAS 与我的 War App 相关的共享库
-> 实例和应用程序的类加载器没有变化 (PARENT_FIRST)
有了这个配置(上图),应用程序可以在 WAS 7 上与 JSF 2.0 一起正常工作。如果我从我的 War 应用程序中删除 javax.faces-2.0.11.jar,它就不起作用。
感谢你们!
它适用于较新版本的 javax.faces。查看 Maven 依赖项:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.1.29-08</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.sun.el</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>
不要忘记在 web.xml 中添加以下内容:
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
最后将应用程序和模块的 WebSphere 类加载器顺序更改为(最后的父级)设置: https ://www.ibm.com/support/knowledgecenter/SSAW57_7.0.0/com.ibm.websphere.nd.doc/信息/ae/ae/urun_rclassloader_inst.html
问候