我有一个在 WebLogic 10.3.0 上运行的 Java EE 5 Web 应用程序。我想使用 JSF 2.x,但 WebLogic 10.x 只支持 JSF 1.2。因此,我做了以下操作以改用 JSF 2.x。
我部署了一个包含这些 JAR 的 WAR:
- wls.jsf.di.jar
- glassfish.jstl_1.2.0.1.jar
- javax.jsf_1.0.0.0_2-0.jar (jsf 2.0)
- glassfish.jsf_1.0.0.0_2-0-4.jar
我添加了以下 JAR 来构建纯粹用于编译的路径:
- javax.faces-2.1.26.jar
- jstl-1.2.jar
创建了一个 Servlet 2.5 兼容
web.xml
和一个weblogic.xml
(1.0)。包括在
weblogic.xml
:<library-ref> <library-name>jsf</library-name> <specification-version>2.0</specification-version> <implementation-version>1.0.0.0_2-0-2</implementation-version> <exact-match>false</exact-match> </library-ref> <container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor>
对于 EL 2.1 中类似 EL 2.2 的方法参数支持,我添加了这个 JAR:
- jboss-el-2.0.0.GA.jar
- jboss-el-2.0.0.GA.jar
并将其放在
web.xml
:<context-param> <param-name>com.sun.faces.injectionProvider</param-name> <param-value> com.sun.faces.vendor.WebContainerInjectionProvider </param-value> </context-param>
在所有这些更改之后,WebLogic 控制台仍然在说以下内容:
为上下文初始化 Sun 的 JavaServer Faces 实现 (1.2_03-b04-FCS)
如您所见,它仍在使用 JSF 1.2。我还能做些什么来充分使用 JSF 2?