我被要求帮助解决应用程序问题。
这是背景 - 我们有一个在 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)
我还可以检查什么来确定错误的原因?