这篇教程了我们将展示怎样把JSF 2.2 API (Java EE 7 规范的一部分)安装到JBoss AS 7上。
Java EE 7即将到来,以一些有趣的新特性为主。在一些修改后,JSF 2.2规范将包含下面所谓大票(Big Tickets)的特性:
(一个值得注意的细节是JSF 2.2在这里如此介绍一个CDI上的依赖,这可能意味着JSF的其他方面也要向CDI靠近)
当前的JBoss AS 7.1.1 和EAP 6.1副本的发行版都是基于JSF 2.1的,然而,由于JBoss AS 7的模块化核心,升级JSF库是很简单的。
首先我们获取到JSF2.2的库。在本教程编写的时候,一个JSF API 的2.2.0快照版本和实现(Mojarra)已经在Maven的Nexus仓库上: https://maven.java.net/index.html。从这些图片上你能看到,你需要获取到核心API和它的实现。
#1 替换当前的JSF2.1库选项
你需要复制这两个JAR文件到已经安装在应用服务器上的模块里:
同时修改 resource-root 路径 相应的每个 module.xml:
<resource-root path="jsf-impl-2.2.0-20130322.075047-259.jar"/>
<resource-root path="jsf-api-2.2.0-20130322.075010-270.jar"/>
此外,你需要在JSF API的module.xml里声明明确的对JSF实现的引用
<module name="com.sun.jsf-impl"/>
#2 为你的JSF2.2API再加入一个槽
现在, 进入modules/com/sun/jsf-impl/2.2 文件夹复制jsf-impl-2.2.0-20130322.075047-259.jar文件同时加入下面的module.xml:
<module xmlns="urn:jboss:module:1.1" name="com.sun.jsf-impl" slot="2.2"> <properties> <property name="jboss.api" value="private"/> </properties> <dependencies> <module name="javax.faces.api" slot="2.2"/> <module name="javaee.api"/> <module name="javax.servlet.jstl.api"/> <module name="org.apache.xerces" services="import"/> <module name="org.apache.xalan" services="import"/> </dependencies> <resources> <resource-root path="jsf-impl-2.2.0-20130322.075047-259.jar"/> </resources> </module>同样的方法,进入 modules/javax/faces/api/2.2复制 jsf-api-2.2.0-20130322.075010-270.jar文件同时加入下面的 module.xml:
<module xmlns="urn:jboss:module:1.1" name="javax.faces.api" slot="2.2"> <dependencies> <module name="javax.el.api" export="true"/> <module name="javax.servlet.api" export="true"/> <module name="javax.servlet.jsp.api" export="true"/> <module name="javax.servlet.jstl.api" export="true"/> <module name="javax.validation.api" export="true"/> <module name="com.sun.jsf-impl" slot="2.2"/> </dependencies> <resources> <resource-root path="jsf-api-2.2.0-20130322.075010-270.jar"/> </resources> </module>为了触发JSF 2.2 API,我们需要部署一个实际使用JSF的应用,因此,部署任何web应用,它要包含 一个JSF 2.2的faces-config.xml:
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee <a href="http://java.sun.com/xml/ns/javaee/web-facesconfig_2_2.xsd">http://java.sun.com/xml/ns/javaee/web-facesconfig_2_2.xsd</a>" version="2.2"> </faces-config>最后,如果你已经把JSF 2.2作为一个槽安装到你的AS7里,你需要在你的 jboss-deployment-structure.xml里提供一个指向JSF 2.2库的依赖和排除默认的JSF 2.1 API:
<jboss-deployment-structure> <deployment> <exclusions> <module name="javax.faces.api" /> <module name="com.sun.jsf-impl" /> </exclusions> <dependencies> <module name="javax.faces.api" slot="2.2"/> <module name="com.sun.jsf-impl" slot="2.2"/> </dependencies> </deployment> </jboss-deployment-structure> <?xml version="1.0" encoding="UTF-8"?>
那就是这样了!一旦发布了你的JSF 2.2 应用,你可以到控制台上检查到新的JSF 2.2 API已经正确的注册了:
今晚我们并没有使用JSF 2.2 API编写任何例子(但我们很快就要品尝它了!)如果你想尝试JSF 2.2的一些新特性,你可以把已经从Maven仓库下载好的两个JAR文件放到你的Eclipse库 ,或者如果你的项目使用Maven,则可以把下面的依赖加到你的pom.xml:
<dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.2.0-SNAPSHOT</version> </dependency>
最后说明:上面的配置已经在jboss-eap-6.1平台上测试过,但它应该同样能在AS 7.1.1社区版上工作。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务