如何在耳中正确找到JSF版本

时间:2015-05-15 05:59:18

标签: jsf jsf-2

当我使用下面的代码时,它将版本返回为1.0.0.0_2-1

String version = FacesContext.class.getPackage().getImplementationVersion();

但是当我检查MANIFEST.MF中的MYAPP.ear\MyWEB.war\WEB-INF\lib\jsf-impl.jar\META-INF\文件时,它提到如下。

Implementation-Version: 2.0.2-FCS

所以我的问题是这个项目使用的是哪一个正确的版本? 我使用Oracle Weblogic 12C实例。

2 个答案:

答案 0 :(得分:0)

问题:

    which one is the correct version this project use?

实施 - 版本:2.0.2-FCS是该项目使用的正确版本。

您可以找到解决方案here

答案 1 :(得分:0)

Oracle WebLogic已经成为一个Java EE应用服务器,已经与其他JSF开箱即用。您不需要也不需要通过提供JSF来手动安装JSF。

您看到的1.0.0.0_2-1来自WebLogic捆绑的JSF。它显然是一个JSF 2.1实现,但不幸的是,那里缺少修订版。你无法控制它。 Oracle显然修改了JAR和manifest。 Java EE应用程序服务器供应商拥有自己的构建系统,可根据源代码文件生成JAR。因此,JAR文件名和清单内容可能与“官方”JAR的文件名和清单内容不同。

在任何情况下,如果您没有将标准WebLogic 12c设置修改为currently latest available(12.1.3),那么我可以说它实际上是Mojarra 2.1.20。

只有在没有随附JSF的准系统servletcontainer(如Tomcat和Jetty)上,才需要手动安装JSF和webapp。无论如何,当您在WebLogic等Java EE容器上执行此操作时,您将面临由类路径冲突引起的问题。不要那样做。在您的特定情况下,您可以看到WebLogic捆绑的JSF实现实际正在使用。但API和Web资源(例如jsf.js)仍将来自WAR。这迟早会在冲突中结束。

另见: