Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 EAR应用程序名称和上下文根相同有任何问题吗?_Jsf 2_Primefaces_Websphere 7_Application.xml - Fatal编程技术网

Jsf 2 EAR应用程序名称和上下文根相同有任何问题吗?

Jsf 2 EAR应用程序名称和上下文根相同有任何问题吗?,jsf-2,primefaces,websphere-7,application.xml,Jsf 2,Primefaces,Websphere 7,Application.xml,我被要求帮助解决一个应用程序问题 这是背景——我们有一个JSF1.2应用程序在WAS7中运行。这是一场战争。该团队向同一个应用程序添加了另一个WAR,该应用程序是JSF2.0模块,并使用PrimeFaces组件库。因此,它是JSF1.2和JSF2.0的组合。由于WAS7中没有对JSF2.0的本机支持,我们在第二次世界大战的WEB-INF/lib中添加了mojarra JAR,并将应用程序类加载器设置为PARENT_LAST 我观察到的另一件事是,这个团队以这样一种方式定义了他们的应用程序,即ap

我被要求帮助解决一个应用程序问题

这是背景——我们有一个JSF1.2应用程序在WAS7中运行。这是一场战争。该团队向同一个应用程序添加了另一个WAR,该应用程序是JSF2.0模块,并使用PrimeFaces组件库。因此,它是JSF1.2和JSF2.0的组合。由于WAS7中没有对JSF2.0的本机支持,我们在第二次世界大战的WEB-INF/lib中添加了mojarra JAR,并将应用程序类加载器设置为PARENT_LAST

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

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

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)

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

这是一个部分设置问题。EAR类加载器最后设置为PARENT_,但WAR类加载器没有设置。一旦我们让它在这两个地方都成为最后一个,它就成功了

将此作为一个答案,以便其他有相同问题的人可以从答案中找到解决问题的方法,而不是阅读评论


如果这是一种不好的礼节,可以删除。

该方法是在JSF 2.0中添加的,在JSF 1.2中不存在。因此,这表明实际上使用了JSF1.2而不是JSF2.0。谢谢。这是一个局部设置问题。EAR类加载器最后设置为PARENT_,但WAR类加载器没有设置。一旦我们让它在这两个地方都成为最后一个,它就成功了。所以我现在的新问题是-耳朵级设置和战争级设置有什么区别?还是我应该为此提出一个新问题?