Если я выбираю Мохарру и пытаюсь запустить Tomcat (из Eclipse), я получаю следующее исключение:
java.lang.LinkageError: нарушение ограничения загрузчика: когдаразрешающий метод интерфейса "javax.servlet.jsp.JspApplicationContext.getExpressionFactory ()
Это исключение говорит о том, что у вас есть файл JAR API / impl JAR другого контейнера / сервлет-контейнера контейнера / сервлета в другой версии пути веб-приложениякоторый конфликтует с JSP API самой целевой среды выполнения.
Если я выберу MyFaces, я получу следующее исключение:
java.lang.IllegalStateException: приложение не было должным образом инициализировано при запуске, не удалось найти Factory: javax.faces.application.ApplicationFactory
Это исключение предполагает, что у вас есть JAR-файл JSF impl другой JSF-модели / версиив другом месте в пути к классам во время выполнения веб-приложения, который конфликтует с JSF, фактически загружаемым.
Оба исключаяВсе сводится к тому, что путь к классам во время выполнения веб-приложения грязный.Помимо папки /WEB-INF/lib
, которая, как вы сказали, пуста, Tomcat/lib
, JRE/lib
и JRE/lib/ext
покрыты путем к классу времени выполнения веб-приложения.Вы должны убедиться, что вы не добавили туда любые JAR-файлы.Удалите их, если таковые имеются.Удалите / удалите / переустановите, если необходимо, Tomcat и / или JRE, чтобы быть в безопасности.Затем вы должны отсоединить их библиотеки, если вы действительно не понимаете, что делаете.
Я думаю , что у вас есть javaee.jar
с сервера Glassfish где-то в пути к классам во время выполнения вашего веб-приложения.Это, по крайней мере, объясняет оба исключения, поскольку оно включает в себя как стандартный JSP API, так и Mojarra API.