我想在我的应用程序中使用JSF 2.3,但WildFly使用2.2 JAR变体。
Oracle在此处https://javaserverfaces.java.net/2.3/download.html表示不会发布2.3 2 JAR变体。
答案 0 :(得分:10)
这是手动程序:
使用ZIP工具提取javax.faces.jar
。您将获得3个文件夹com
,javax
和META-INF
。
使用ZIP工具将com
和META-INF
文件夹打包到jsf-impl.jar
。
然后,删除META-INF
中MANIFEST.MF
除之外的所有文件/子文件夹。
使用ZIP工具将javax
和META-INF
文件夹打包到jsf-api.jar
。
继续使用这些JAR:Upgrade JSF / Mojarra in JBoss AS / EAP / WildFly。
对于感兴趣的人来说,JBoss AS和WildFly内部有基于Java EE和impl文件的模块化分离。仍需要分隔的JAR文件jsf-api.jar
和jsf-impl.jar
。原因不是真正的技术,而只是一个额外的服务,迫使开发人员编写正确的库。在编译期间只公开API模块(通常,通过IDE集成的插件将它们添加到"构建路径")。这应该避免启动者意外地查找,导入和使用实现类,例如com.sun.faces.*
包中的实现类。
自版本1.x以来,JSF实现Mojarra由两个JAR文件组成:jsf-api.jar
和jsf-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文件。