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

eri*_*eal 10 jsf wildfly jsf-2.3

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

甲骨文在这里说https://javaserverfaces.java.net/2.3/download.html,不会发布2.3 2 JAR变种.

Bal*_*usC 10

这是手动程序:

  1. javax.faces.jar使用ZIP工具提取.你会得到3个文件夹com,javaxMETA-INF.

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

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

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

  5. 继续使用这些JAR:在JBoss AS/EAP/WildFly中升级JSF/Mojarra.


对于感兴趣的人来说,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文件,另请参阅问题2028(2011年12月从Mojarra 2.1.6开始).从Mojarra 2.3开始,分离的JAR文件不再构建.