如何找出我的 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 实现中失败,因为 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 的模块文件名。

以上是关于如何找出我的 WebLogic 正在使用的 Mojarra 的当前版本?的主要内容,如果未能解决你的问题,请参考以下文章

无法安装weblogic

如何在 weblogic 服务器上获取请求-响应日志

WEBLOGIC连接池配置

Weblogic问题汇总

如何访问 weblogic 10.3.6 中定义的 JNDI 数据源

无法在 Weblogic 上部署