Как использовать функциональность EL 2.2 в Weblogic 10.3.x? - PullRequest
2 голосов
/ 16 января 2012

У меня установлен Weblogic 10.3.5. Я развернул WAR с JSF 2.0 и JSTL 1.2 на сервере. Но мне также нужна функциональность EL 2.2. Какие банки мне нужны? Было бы замечательно, если бы кто-то мог указать мне на пошаговое руководство с нуля, поскольку я пытался настроить это часами без удачи.

Ответы [ 3 ]

7 голосов
/ 16 января 2012

Проще всего удалить jboss-el.jar , который является совместимой с EL 2.1 реализацией, предлагающей те же функции , что и EL 2.2, в /WEB-INF/lib и сообщить реализации JSF:используйте вместо этого реализацию EL.Как это сделать, зависит от используемой реализации JSF.В случае Mojarra вам необходимо добавить следующий параметр контекста в web.xml:

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

А в случае MyFaces это следующий параметр контекста:

<context-param>     
    <param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name>
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>   
</context-param>

См.также:

2 голосов
/ 15 апреля 2013

Я чувствую, что принятый ответ может или не может работать для каждой ситуации, и, конечно, ловушка в том, что вы застрянете в одном выпуске EL JBoss без какой-либо поддержки продолжающихся исправлений ошибок в будущих выпусках патчейправильная реализация 2.2.

В конечном счете, вот что сработало для меня на сервере WebLogic 10.3.6.

Я скачал Jar API EL 2.2 и реализацию из Glassfish и включил их в WEB-INF/lib папка моего веб-приложения.

el-api-2.2.jar

el-impl-2.2.0-SNAPSHOT.jar

Последля этого обычно нужно добавить параметр контекста в web.xml, чтобы обозначить класс для загрузки для новой реализации EL, как в ответе BalusC.Weblogic, похоже, не заботится об этом, но его загрузчик классов имеет свой собственный подход.Вы должны указать в своем weblogic.xml, чтобы дать льготную загрузку классов для классов EL в WEB-INF/lib.Это позволит загружать вашу реализацию Glassfish вместо старой реализации EL в комплекте с WebLogic.

 <container-descriptor>
    <prefer-application-packages>
     <package-name>com.sun.el.*</package-name>
     <package-name>javax.el.*</package-name>
  </prefer-application-packages>
</container-descriptor>
0 голосов
/ 21 февраля 2013

Я реанимировал вопрос, когда узнал, что реализация jboss в el 2.2 имеет пермгенс-пространство утечка памяти при повторном развертывании.Я попробовал несколько других доступных реализаций, а именно:

  • juel 2.2.1
  • tomcat-jasper-el 7.0.35

, но не запустился.Использование реализации 2.2 glassfish не работало (даже с предпочтением-web-inf-классы, или предпочесть-приложение-пакет), причиной проблем с загрузкой классов.

Буду признателен за любые предложения относительно реализациина сегодняшний день и работает с weblogic без изменений в classpath сервера.

...