【问题标题】:Any issues with EAR application name and context-root being same?EAR 应用程序名称和上下文根是否相同有任何问题吗?
【发布时间】:2013-06-03 23:48:43
【问题描述】:

有人要求我帮助解决应用程序问题。

这里是背景——我们有一个在 WAS 7 中运行的 JSF 1.2 应用程序。这是一个 WAR。该团队为同一个应用程序添加了另一个 WAR,它是一个 JSF 2.0 模块并使用 PrimeFaces 组件库。因此它是 JSF 1.2 和 JSF 2.0 的组合。因为 WAS 7 中没有对 JSF 2.0 的原生支持,所以我们将 mojarra jar 添加到第二次战争的 WEB-INF/lib 中,并将应用程序类加载器设置为 PARENT_LAST。

我观察到的另一件事是,该团队以这样一种方式定义了他们的应用程序,即 application.xml 中 EAR 的显示名称和 JSF 2.0 WAR 的上下文根值完全相同。我知道为了清楚起见不应该这样做,但找不到任何可以澄清它的东西。

当尝试从 JSF 2.0 WAR 中获取页面时,应用程序出现以下错误。我将只添加几行堆栈跟踪

Exception created : java.lang.NoSuchMethodError: javax/faces/context/FacesContext.getAttributes()Ljava/util/Map;
at org.primefaces.lifecycle.RestoreViewPhaseListener.afterPhase(RestoreViewPhaseListener.java:30)
at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:175)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:114)

我还可以检查什么来确定错误的原因?

【问题讨论】:

  • 该方法是在 JSF 2.0 中添加的,而在 JSF 1.2 中不存在。因此,这表明实际上使用的是 JSF 1.2 而不是 JSF 2.0。
  • 谢谢。这是部分设置问题。 EAR 类加载器设置为 PARENT_LAST,但 WAR 类加载器没有。一旦我们在这两个地方都设置了 PARENT_LAST,它就起作用了。所以我现在的新问题是 - EAR 级别设置和 WAR 级别设置有什么区别?还是我应该为此提出一个新问题?

标签: jsf-2 primefaces websphere-7 application.xml


【解决方案1】:

这是部分设置问题。 EAR 类加载器设置为 PARENT_LAST,但 WAR 类加载器没有。一旦我们在这两个地方都设置了 PARENT_LAST,它就起作用了。

将此作为答案,以便其他有相同问题的人可以从答案中找到解决问题的方法,而不必阅读 cmets。

如果这是不礼貌的,可以删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 2012-12-14
    • 2018-01-08
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 2017-04-26
    相关资源
    最近更新 更多