【问题标题】:WebSphere 7, JSF 2.0 and classloadersWebSphere 7、JSF 2.0 和类加载器
【发布时间】:2011-03-13 23:08:30
【问题描述】:

在 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”的不同类型启动加载

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

【问题讨论】:

    标签: java jsf-2 websphere classloader mojarra


    【解决方案1】:

    知道了..

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

    com.sun.faces.expressionFactorycom.sun.el.E​​xpressionFactoryImpl

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

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

    【讨论】:

      【解决方案2】:

      我在 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。我只是分享我遇到的问题。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      相关资源
      最近更新 更多