【问题标题】:How to find JSF version in the ear correctly如何在耳朵里正确找到 JSF 版本
【发布时间】:2015-05-15 05:59:18
【问题描述】:

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

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

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

Implementation-Version: 2.0.2-FCS

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

【问题讨论】:

  • Oracle 12C 是 SQL 数据库,而不是 Java EE 服务器。而且,正如问题所示,该服务器显然已经随 JSF 一起提供了开箱即用的服务。您应该删除 webapp 提供的 JSF 库,以防您面临运行时类路径中多个不同版本的 JSF API/impl 库之间冲突的后果。
  • @BalusC 我没有任何问题。但我想如何找到正确的? 1.0.0.0_2-1这是什么意思?是的,我使用 Weblogic 12c。

标签: jsf jsf-2


【解决方案1】:

问题:

    which one is the correct version this project use?

Implementation-Version:2.0.2-FCS 是此项目使用的正确版本。

您可以找到解决方案here

【讨论】:

  • 我看到了这个答案。这就是为什么我很困惑。当我尝试 String version = FacesContext.class.getPackage().getImplementationVersion(); 时,你看到我得到了什么吗?它是1.0.0.0_2-1
【解决方案2】:

Oracle WebLogic 作为 Java EE 应用程序服务器提供,其中包括开箱即用的 JSF。您不需要也不应该需要通过将 JSF 与 webapp 一起提供来手动安装它。

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

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

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

另见:

【讨论】:

  • 另外一个问题。所以我的耳朵包含jsf-impl.jar,版本为Implementation-Version: 2.0.2-FCS。这意味着jsf 2.0 不是吗?但是网络服务器包含jsf 2.1。这意味着最终应用程序使用jsf 2.1 环境?
  • 那是 Mojarra 2.0.2,相当古老。摆脱它。
  • 我的问题是即使我在旧版本中包含jsf-impl.jar,最终应用程序在服务器jsf版本中运行。是吗?
  • API 将。 impl 取决于类加载配置。资源将来自WAR。无论如何,这是一个糟糕的主意。 摆脱它。升级服务器捆绑的 JSF 应该发生在服务器安装本身。一些服务器支持 webapp 提供的配置参数(例如在 web.xml 或某些服务器特定的 xml 中)来抑制这种情况。
  • 根据this 我在上述位置有glassfish.jsf_1.0.0.0_2-1-5.jar。所以我没有使用 2.1.20 对吗?
猜你喜欢
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多