Почему я вижу # {UserBean.userName} на моей странице jsf во время работы на Tomcat, но он отлично работает на Glassfish - PullRequest
0 голосов
/ 11 марта 2011

Я занимаюсь разработкой приложения с использованием Richfaces 3.3.3 и Glassfish. Все работает хорошо. Теперь я получил вызов, чтобы перенести его на Tomcat 6/7. Поэтому, когда я изменил сервер времени выполнения на моем Netbeans 6.9.1 и запустил приложение, я вижу # {UserBean.userName} и все подобные выражения, несмотря на их оцененные значения. Я пытался со всеми комбинациями банок, но все еще не мог понять. Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 11 марта 2011

Я предполагаю, что теги JSF работают нормально, в противном случае вы не увидели бы простой EL на странице в веб-браузере, поэтому часть FacesServlet в порядке.В противном случае было бы странно, если бы он работал в Glassfish.Пропуск JAR-файлов JSF приведет только к ошибкам HTTP 500 с исключениями, в которых сообщается, что библиотеки JSF отсутствуют в пути к классам при загрузке FacesServlet.

Итак, EL в JSF не работает.Это может произойти, если фабрика JSF EL не найдена.Это может произойти, если вы объявили «пользовательскую» фабрику JSF EL в web.xml, но эта фабрика отсутствует в пути к классам веб-приложения.То, что это работает в Glassfish, может означать только то, что у вас есть web.xml.

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

Избавьтесь от этого.Tomcat не поставляется с реализацией EL для Glassfish.Tomcat уже поставляется со своей собственной реализацией EL, которая должна работать так же хорошо, как и в Glassfish.

Однако в журналах запуска сервера уже должен быть об этом намек.

0 голосов
/ 11 марта 2011

Похоже, ваше отображение сервлета для лица сервлет работает неправильно.Возможно, вам придется адаптировать свой web.xml.Однако, насколько мне известно, конфигурация для сервлета Faces одинакова в Glassfish и Tomcat.

Другая причина может заключаться в том, что ваш сервер Tomcat не может получить доступ к файлам jsf jar.

Look здесь и здесь

...