1

在 WAS 7 上,我在 EAR 中部署了一个 WAR。EAR 类加载模式设置为PARENT_LAST, WAR 类加载模式也设置为PARENT_LAST。WAR/WEB-INF/lib有 Mojarra JSF 2 RI 和 Unified EL 2.1 jars。

尽管如此,当应用程序启动时,它会尝试从内置的 MyFaces 1.2 加载一些 MyFaces 内容。WAR 类加载器的类加载器查看器清楚地显示

“org.apache.myfaces.webapp.StartupServletContextListener”在启动时从 base_v7/plugins/org.apache.myfaces1_2.jar 加载

男孩,这太疯狂了。很多其他的东西也从其他地方捡来,并造成一大堆肮脏的课程:

“com/ibm/ws/classloader/CompoundClassLoader@116a116a”之前启动了加载器“org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader@2a502a50”定义的名称为“javax/el/ExpressionFactory”的不同类型的加载

你知道这里可能出了什么问题吗?

4

2 回答 2

2

知道了..

首先,如果我们在 web.xml 中设置此上下文参数,应用程序将正常工作,而不会在 ExpressionFactory 上发生类加载器冲突:

    <上下文参数>
        <param-name>com.sun.faces.expressionFactory</param-name>
        <param-value>com.sun.el.E​​xpressionFactoryImpl</param-value>
    </context-param>

( http://ocpsoft.com/java/jsf2-java/jsf2-how-to-add-the-magic-of-el-el2-to-jsf/ )

而对于 MyFaces StartupServletContextListener.. 我不知道它是否会造成任何伤害,即使它在启动时加载.. 至少我没有注意到它存在的任何问题。

于 2010-07-09T16:25:16.063 回答
0

我在 Spring MVC 中遇到了相同的类型错误。我刚刚从 WEB-INF/lib 中删除了 jsp-api-2.1.jar,它对我有用。您可以从

http://forum.springsource.org/showthread.php?73991-Getting-Linkage-error-while-trying-to-show-the-error-set-in-controller

我不知道JSF。我只是分享我遇到的问题。

于 2012-02-01T11:27:43.970 回答