如何在WildFly上安装JSF(javax.faces.jar)的一个jar变体

时间:2016-03-09 18:38:26

标签: jsf wildfly jsf-2.3

我想在我的应用程序中使用JSF 2.3,但WildFly使用2.2 JAR变体。

Oracle在此处https://javaserverfaces.java.net/2.3/download.html表示不会发布2.3 2 JAR变体。

1 个答案:

答案 0 :(得分:10)

这是手动程序:

  1. 使用ZIP工具提取javax.faces.jar。您将获得3个文件夹comjavaxMETA-INF

  2. 使用ZIP工具将comMETA-INF文件夹打包到jsf-impl.jar

  3. 然后,删除META-INF MANIFEST.MF之外的所有文件/子文件夹。

  4. 使用ZIP工具将javaxMETA-INF文件夹打包到jsf-api.jar

  5. 继续使用这些JAR:Upgrade JSF / Mojarra in JBoss AS / EAP / WildFly

  6. 对于感兴趣的人来说,JBoss AS和WildFly内部有基于Java EE和impl文件的模块化分离。仍需要分隔的JAR文件jsf-api.jarjsf-impl.jar。原因不是真正的技术,而只是一个额外的服务,迫使开发人员编写正确的库。在编译期间只公开API模块(通常,通过IDE集成的插件将它们添加到"构建路径")。这应该避免启动者意外地查找,导入和使用实现类,例如com.sun.faces.*包中的实现类。

    自版本1.x以来,JSF实现Mojarra由两个JAR文件组成:jsf-api.jarjsf-impl.jar。 API JAR包含javax.faces.*类,实现JAR包含com.sun.faces.*类。由于构建系统的更改符合Java EE Maven规则,因此API和实现类都合并为单个javax.faces.jar文件,另请参阅issue 2028(2011年12月从Mojarra 2.1.6开始)。从Mojarra 2.3开始,不再构建分离的JAR文件。