Ответ 1
Это предотвратит создание нескольких тегов контекста при каждом запросе
1) Остановить сервер
2) Очистить рабочий каталог Tomcat
Я борюсь за последние 6-7 часов, пытаясь выяснить, что пошло не так с моим сервером Apache Tomcat. Во всех моих проектах версия jdk
была переведена на 1.6
с 1.8
.
Для того, чтобы решить version conflict
, я проверил ли же, принимая помощь от скомпилированных версий и JVM из Tomcat версия здесь.
Для нескольких контекстов с одной и той же ошибкой пути я знаю, что мне нужно удалить дубликаты тегов контекста в server.xml
. Итак, сначала я проверяю проект "Серверы" (который создается сам, когда вы добавляете Apache Tomcat Server в Eclipse) и не нахожу там ничего. Итак, я углубился в metadata\.plugins\org.eclipse.wst.server.core\tmp3\conf
каталога (Eclipse WorkSpace) metadata\.plugins\org.eclipse.wst.server.core\tmp3\conf
и удалил дублирующиеся теги контекста там, с помощью, взятой отсюда.
Теперь, когда я создаю новый динамический веб-проект, все работает нормально, и я могу видеть веб-страницу. Но если я пытаюсь получить доступ к любому из HTML, XHTML файлов того старого проекта, в котором был изменен jdk, это org.apache.catalina.LifecycleException
продолжает всплывать, и сервер не запускается, и, следовательно, эти повторяющиеся теги Context продолжают строить снова и снова каждый раз, когда я запускаю сервер.
Кажется, что ни один из моих старых проектов веб-приложений сейчас не работает.
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: не удалось запустить компонент [StandardEngine [Catalina].StandardHost [localhost].StandardContext [/EdBurns_ChrisSchalk]]..... SEVERE: во время запуска произошел сбой дочернего контейнера java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: не удалось запустить компонент [StandardEngine [Catalina].StandardHost [localhost]].... Причина: java.lang.RuntimeException: непредвиденный вид значения элемента в аннотации: 0
Как предотвратить повторное создание этих контекстных тегов в server.xml. Во-вторых, как вернуть эти старые веб-проекты в рабочее состояние?
Это предотвратит создание нескольких тегов контекста при каждом запросе
1) Остановить сервер
2) Очистить рабочий каталог Tomcat
У меня была аналогичная ошибка, и я исправил ее следующими шагами: 1. В проекте Servers (который создается при добавлении Apache Tomcat Server в Eclipse), откройте server.xml 2. Прокомментируйте строку
<Context docBase=... />
Если вы не используете сервлет, основанный на аннотациях, удалите аннотацию @WebServlet ( "/YourServletName" ) из запуска сервлета. Эта аннотация смешивает отображение с web.xml, после удаления этой аннотации сервер Tomcat будет работать правильно.
Кажется, это проблема локального репозитория Maven. (т.е. папка .m2) может быть связано с повреждением файла .jar
Для меня следующие действия помогли преодолеть эту проблему.
В моей локальной файловой системе я удалил каталог .m2 (локальный репозиторий Maven)
В Eclipse обновил проект (выберите Maven> Обновить проект)
Запустите приложение снова на сервере Tomcat.
В моем случае файл servlet-api.jar в jre/lib/ext в каталоге jdk конфликтует с файлом servlet-api.jar в tomcat, удаляя файл servlet-api.jar в jre/lib/ext в каталоге jdk может решить проблему.
Просто убедитесь, что сборка с правильной конфигурацией web.xml. У меня есть обновление web.xml с конфигурацией tomcat, и это сработало для меня. Образец :-
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>simulator</display-name>
<description>simulator app</description>
<!-- File upload -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!-- excel simulation -->
<display-name>simulator</display-name>
<description>simulator app</description>
<!-- File upload -->
<welcome-file-list>
<welcome-file>InsertPage.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>FileUploadServlet</servlet-name>
<servlet-class>clari5.excel.FileUploadServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FileUploadServlet</servlet-name>
<url-pattern>/excelSimulator/FileUploadServlet</url-pattern>
</servlet-mapping>
</web-app>
Дублирование @WebServlet ("/YourServletName") в вашем проекте. пожалуйста, проверьте файлы сервлета.
Одна из проблем, которая может вызвать это, заключается в том, что вы забыли поместить символ/в аннотацию WebServlet @WebServlet ("/example") @WebServlet ("пример"). Надеюсь, это сработало, у меня сработало.
Если вы используете следующий стек: Версия сервера: Apache Tomcat/9.0.21 Версия сервлета: 4.0 Версия JSP: 2.3
Затем попробуйте добавить <absolute-ordering/>
в ваш файл web.xml. Итак, ваш файл выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>spring-mvc-crud-demo</display-name>
<absolute-ordering />
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
......
Прошел через различные ресурсы в сети, но ни один из них не помог мне, я удалил существующий сервер и снова добавил тот же сервер, и теперь он работает нормально, а шаги
Окно → ShowView → Серверы → RightClick → Удалить
а затем добавьте сервер снова, как вы уже добавили.
Я думаю, что это проблема с версией файла jar. У меня была такая же проблема, и я исправил ее, изменив файл commons-codec-1.6.jar из пути сборки. Раньше я использовал последнюю версию 1.10. Постепенно я уменьшил версии, и версия 1.6 исправила мою проблему.
Перейдите в диспетчер задач, убейте java-процессы и включите сервер. должен работать нормально.