【问题标题】:How to find out the current version of Mojarra which my WebLogic is using?如何找出我的 WebLogic 正在使用的 Mojarra 的当前版本?
【发布时间】:2013-12-03 16:27:35
【问题描述】:

我正在尝试识别我的 WebLogic 12c 正在使用的 Mojarra 的当前版本。我怎样才能知道呢?

【问题讨论】:

  • @BalusC 非常感谢。感谢您的帮助。

标签: jsf-2 mojarra weblogic12c


【解决方案1】:

一种方法是以编程方式从任意 JSF 类的 Package 信息中提取实现细节,例如 FacesContext

Package p = FacesContext.class.getPackage();
System.out.println(p.getImplementationTitle() + " " + p.getImplementationVersion());

另一种方法是探索 WebLogic 安装的 /wlserver/modules 文件夹中的 JSF 模块。在我的 12c 安装中,文件名是 glassfish.jsf_1.0.0.0_2-1-20.jar,这反过来又标识了 Mojarra 2.1.20。

【讨论】:

  • 谢谢,EL 表达式也很方便:#{facesContext.class.package.implementationTitle}: #{facesContext.class.package.implementationVersion}
  • @Webel:这将在 EL 2.2 实现中失败,因为 classpackage 是 Java 文字。你需要#{facesContext['class']['package'].implementationXxx}
  • 这两项都适用于 Mojarra:2.2.7;玻璃鱼4.1; [来自 NetBeans8.1beta;] JDK1.7。 #{facesContext.class.package.implementationTitle}: #{facesContext.class.package.implementationVersion}#{facesContext['class']['package'].implementationXxx}。对于该测试,web.xml 具有 web-app version="3.1",其中 Servlet 3.1 comes with JSP 2.3 and EL 3.0.。问:你是说第一个 El 表达式 #{facesContext.class.package.implementationXxx} 可能不适用于旧的 EL2.2 吗?
  • @Webel:显然,Oracle 的 EL impl 在这方面是宽容的。 Apache EL 至少在这方面失败了。
  • @MarkW: 然后检查 WebLogic 的模块文件名。
猜你喜欢
  • 1970-01-01
  • 2016-09-23
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
相关资源
最近更新 更多