Нарушение ограничения загрузчика: при разрешении метода интерфейса "javax.servlet.jsp.JspApplicationContext.addELResolver(Ljavax/el/ELResolver;)V"

Я получил эту ошибку при развертывании WAR в Tomcat 7. Я выполнил разработку с использованием JDeveloper 11.

"java.lang.LinkageError: нарушение ограничения загрузчика: при разрешении метода интерфейса"javax.servlet.jsp.JspApplicationContext.addELResolver(Ljavax/el/ELResolver;)V"загрузчик классов (экземпляр org/apache/catalina/loader/WebappClassLo)) текущего класса, com / sun / face / config / ConfigureListener и загрузчик классов (экземпляр org / apache / catalina / loader / StandardClassLoader) для разрешенного класса, javax/servlet/jsp/JspApplicationContext, имеют различные объекты класса для тип p.JspApplicationContext.addELResolver (Ljavax / el / ELResolver;) V, используемый в подписи "

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

Вот такие у меня банки /WEB-INF/lib:

  • adf-controller-api.jar
  • adf-controller-rt-common.jar
  • adf-controller-security.jar
  • adf-controller.jar
  • adf-dt-at-rt.jar
  • adf-richclient-api-11.jar
  • adf-richclient-impl-11.jar
  • adf-share-base.jar
  • adf-share-ca.jar
  • adf-share-security.jar
  • adf-share-support.jar
  • adf-transactions-dt.jar
  • adfdt_common.jar
  • adflibfilter.jar
  • adflogginghandler.jar
  • adfm.jar
  • adfmweb.jar
  • adfsharembean.jar
  • cache.jar
  • commons-el.jar
  • db-ca.jar
  • dvt-databindings.jar
  • dvt-faces.jar
  • dvt-facesbindings.jar
  • dvt-jclient.jar
  • dvt-trinidad.jar
  • dvt-utils.jar
  • glassfish.el_2.2.0.jar
  • glassfish.jsf_1.2.9.0.jar
  • glassfish.jstl_1.2.0.1.jar
  • groovy-all-1.6.3.jar
  • identitystore.jar
  • inspect4.jar
  • javatools-nodeps.jar
  • javax.activation_1.1.0.0_1-1.jar
  • javax.ejb_3.0.1.jar
  • javax.jsf_1.0.0.0_1-2.jar
  • javax.jsp_1.1.0.0_2-1.jar
  • javax.servlet_1.0.0.0_2-5.jar
  • jdev-cm.jar
  • jewt4.jar
  • jsp-el-api.jar
  • ojdbc14.jar
  • ojmisc.jar
  • oracle-el.jar
  • oracle-page-templates.jar
  • share.jar
  • trinidad-api.jar
  • trinidad-impl.jar
  • wls.jsf.di.jar
  • xmlparserv2.jar

Как я могу решить это?

2 ответа

Решение

Вы не должны иметь в своем составе библиотеки, специфичные для servletcontainer. /WEB-INF/lib, По крайней мере следующие должны быть предоставлены самим Tomcat:

  • glassfish.el_2.2.0.jar
  • javax.jsp_1.1.0.0_2-1.jar
  • javax.servlet_1.0.0.0_2-5.jar
  • jsp-el-api.jar

Удалить их. Особое исключение вызвано javax.jsp_1.1.0.0_2-1.jar один, который отличается от собственного Tomcat.

Смотрите также:

У меня была такая же ошибка при переносе проекта из WAS6 в WAS 7. Вот исправление:

  1. Обновите web.xml: a. Откройте Project_name\src\main\webapp\WEB-INF\web.xml b. Добавьте следующий слушатель:

    Com.sun.faces.config.ConfigureListener

с. Постройте проект и разверните его в Websphere.

  1. Изменить порядок загрузки: a. Откройте консоль сервера приложений Websphere b. Перейдите: Приложения >> Типы приложений >> Корпоративные приложения WebSphere c. Нажмите на проект d. Нажмите "Загрузка классов и обнаружение обновлений" e. Выберите "Классы, загруженные родительским загрузчиком первым" f. Нажмите Применить

  2. Отключить перезагрузку класса JSP a. Перейдите по ссылке: Приложения >> Типы приложений >> Корпоративные приложения WebSphere b. Нажмите на проект c. Нажмите на опции JSP и JSF d. Снимите флажок "JSP enable перезагрузка класса" e. Нажмите ОК

  3. Изменение реализации JSF a. Перейдите по ссылке: Приложения >> Типы приложений >> Корпоративные приложения WebSphere b. Нажмите на проект c. Нажмите на опции JSP и JSF d. Выберите "MyFaces 1.2" в разделе "Реализация JSF".

  4. Начать проект

Другие вопросы по тегам