如何找出我的 WebLogic 正在使用的 Mojarra 的当前版本?
Posted
技术标签:
【中文标题】如何找出我的 WebLogic 正在使用的 Mojarra 的当前版本?【英文标题】:How to find out the current version of Mojarra which my WebLogic is using? 【发布时间】:2013-12-03 16:27:35 【问题描述】:我正在尝试识别我的 WebLogic 12c 正在使用的 Mojarra 的当前版本。我怎样才能知道呢?
【问题讨论】:
@BalusC 非常感谢。感谢您的帮助。 【参考方案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 实现中失败,因为 class
和 package
是 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 的模块文件名。以上是关于如何找出我的 WebLogic 正在使用的 Mojarra 的当前版本?的主要内容,如果未能解决你的问题,请参考以下文章