WebSphere 7, JSF 2.0 и classloaders

На 7 я развернул свой EAR с единственной ВОЙНОЙ в нем. EAR classloading режим установлен на PARENT_LAST, и ВОЙНА classloading режим также установлена на PARENT_LAST. ВОЙНА /WEB-INF/lib имеет RI Mojarra JSF 2 и Объединенные банки EL 2.1.

Несмотря на все это, когда приложение запускается, оно пытается загрузить некоторый материал MyFaces от встроенного MyFaces 1.2. Средство просмотра загрузчика класса для ВОЕННОГО загрузчика класса ясно показывает

"org.apache.myfaces.webapp. StartupServletContextListener", загружаемый при запуске из base_v7/plugins/org.apache.myfaces1_2.jar

Мальчик, это является сумасшедшим.. Много другого материала взято откуда-либо также и создает большую грязную путаницу классов:

"com/ibm/ws/classloader/CompoundClassLoader@116a116a" ранее инициировал загрузку для другого типа с именем "javax/el/ExpressionFactory" определенный загрузчиком "org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader@2a502a50"

У Вас есть какая-либо идея того, что могло бы идти не так, как надо в здесь?

1
задан BalusC 20 October 2012 в 17:27
поделиться

1 ответ

Понятно...

Во-первых, приложение будет работать нормально без конфликта загрузчика классов на ExpressionFactory, если мы установим этот context-param в web.xml:

    <context-param>
        <param-name>com.sun.faces.expressionFactory</param-name>
        <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
    </context-param>

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

И по поводу MyFaces StartupServletContextListener... Я не знаю, приносит ли он какой-либо вред, даже если он загружается при запуске... по крайней мере, я не заметил никаких проблем с его присутствием до сих пор...

2
ответ дан 2 September 2019 в 23:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: