Не удалось загрузить класс прослушивателя сервлета: com.sun.faces.config.ConfigureListener

Я использую apache-tomee-jaxrs-1.7.1 и пытаюсь выполнить развертывание с maven 3, получая эту ошибку:

Не удалось загрузить класс прослушивателя сервлета: com.sun.faces.config.ConfigureListener:

Это мои зависимости в pom.xml:

  ...
  <dependencies>
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>6.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp.jstl</groupId>
      <artifactId>jstl-api</artifactId>
      <version>1.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.openjpa</groupId>
      <artifactId>openjpa</artifactId>
      <version>2.3.0</version>
    </dependency>
  </dependencies>
  ...

Есть идеи? Заранее спасибо.


person emiliano.bovetti    schedule 17.06.2015    source источник


Ответы (1)


Просто избавьтесь от упомянутой в исключении записи <listener> в файле web.xml веб-приложения.

TomEE поставляется с MyFaces, а не с Mojarra. Эта специфичная для Mojarra запись <listener> в web.xml обычно автоматически включается некоторыми IDE, пытающимися быть умнее, чем они есть, и/или остается позади в низкокачественных проектах с открытым исходным кодом. Будьте осторожны с ними. Эта явная регистрация не нужна для приличных контейнеров. См. также Конфигурация com.sun.faces.config.ConfigureListener.

person BalusC    schedule 17.06.2015
comment
Вы совершенно правы. Я добавил <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> в web.xml и теперь работает! Извините за этот фиктивный вопрос, большое спасибо. - person emiliano.bovetti; 17.06.2015
comment
Это также не должно было быть необходимо. Эти слушатели должны быть автоматически зарегистрированы без какой-либо дополнительной настройки. Это может привести к ошибке только в контейнерах с ошибками (как указано в этой ссылке), но, насколько я знаю, в обычном контейнере TomEE этой проблемы нет. - person BalusC; 17.06.2015