Проблемы с развертыванием проекта JSF из Netbeans в Tomcat - PullRequest
1 голос
/ 09 апреля 2010

Погуглил все, но не могу найти решение моей проблемы.

Когда я пытаюсь развернуть свой проект в Tomcat, в журнале Tomcat появляются такие ошибки:

    SEVERE: Error configuring application listener of class com.sun.faces.config.ConfigureListener
    java.lang.NoClassDefFoundError: javax/servlet/ServletRequestListener

Я пытался развернуть его из свежего Netbeans 6.8 в свежую Tomcat 6.0.26, но проблема все еще есть.

Servlet-api.jar находится в папке tomcat / lib. Пытался заменить его на новейший, но проблема все еще есть.

Нет ошибок компиляции. Все правильно.

Проблема началась внезапно. Без изменений кода, без добавления новых банок.

Помощь

UPD : содержимое WEB-INF / lib:

  • hibernate3.jar
  • зимуют-testing.jar
  • кварц-1.7.2.jar
  • кварц-все-1.7.2
  • сервлет-апи-2.5-20081211

Ответы [ 2 ]

3 голосов
/ 09 апреля 2010
java.lang.NoClassDefFoundError: javax/servlet/ServletRequestListener

javax.servlet.ServletRequestListener впервые появился после Servlet 2.4 API. То, что ваша среда не может найти ее, может быть вызвано двумя причинами:

  1. Либо web.xml объявлен как Servlet 2.3 или более старый, что вынуждает сервер переходить в режим соответствия Servlet 2.3, либо данный сервер вообще не поддерживает Servlet 2.4.

  2. Classpath действительно, действительно запутался. Вы должны никогда ставить / изменять / удалять библиотеки в JRE/lib, JRE/lib/ext или Tomcat/lib без понимания того, что вы делаете. Вы не должны никогда помещать специфичные для appserver библиотеки в Webapp/WEB-INF/lib, потому что это не имеет никакого смысла.

Чтобы исправить 1, убедитесь, что ваш web.xml объявлен как минимум Servlet 2.4. Предпочтительно новейший, который может поддерживать сервер. Tomcat 6.0 поддерживает Servlet 2.5, поэтому объявите web.xml соответственно.

Чтобы исправить 2, очистите classpath от всех загрязнений. Потратьте еще немного времени, чтобы узнать больше о явлении "classpath". Обращайтесь с ним осторожно.

0 голосов
/ 09 апреля 2010

Tomcat не поставляется с библиотеками JSF, поэтому вы должны включить их в WEB-INF / lib.Из перечисленного выше очевидно, что вам не хватает тех.Для JSF2 перейдите здесь .

Более того, вам не нужен servlet-api в WEB-INF / lib, это предоставляемая библиотека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...