Как устранить ошибку listenerStart при развертывании веб-приложения в Tomcat 5.5?

я развернул веб-приложение Apache Wicket, которое использует Spring и Hibernate для моего экземпляра Tomcat 5.5. Когда я перехожу к интерфейсу Tomcat Manager, я вижу, что веб-приложение, которое я развернул, не работает. Когда я нажимаю "пуск", я получаю следующее сообщение об ошибке;"FAIL - Application at context path /spaghetti не может быть запущен".

Каталину.журнал содержит следующее:

Apr 15, 2010 1:51:22 AM org.apache.catalina.loader.WebappClassLoader validateJarFile  
INFO: validateJarFile(/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/jsp-api-6.0.16.jar)   - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/jsp/JspPage.class  
Apr 15, 2010 1:51:22 AM org.apache.catalina.loader.WebappClassLoader validateJarFile  
INFO: validateJarFile(/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/servlet-api-6.0.16.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class  
Apr 15, 2010 1:51:24 AM org.apache.catalina.core.StandardContext start  
SEVERE: Error listenerStart  
Apr 15, 2010 1:51:24 AM org.apache.catalina.core.StandardContext start  
SEVERE: Context [/spaghetti] startup failed due to previous errors

выдержка из web.XML-код:

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>

любая помощь очень признателен.

4 ответов


/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/jsp-api-6.0.16.jar
/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/servlet-api-6.0.16.jar

вы должны не есть какие-либо серверные библиотеки в /WEB-INF/lib. Оставьте их в собственной библиотеке appserver. Это приведет только к столкновениям на пути к классам. Избавьтесь от всех библиотек appserver в /WEB-INF/lib (а также JRE/lib и JRE/lib/ext если вы устанавливали любую из них).

общая причина, по которой библиотеки appserver включены в библиотеку webapp, заключается в том, что стартеры считают, что это правильный способ исправить ошибки компиляции среди других javax.servlet классы не resolveable. Размещение их в библиотеке webapp является неправильным решением. Вы должны ссылаться на них в пути к классам во время компиляции, т. е. javac -cp /path/to/server/lib/servlet.jar и так далее, или если вы используете IDE, вы должны интегрировать сервер в IDE и связать веб-проект с сервером. Затем среда IDE автоматически примет серверные библиотеки в пути к классам (buildpath) проекта webapp.


Я обнаружил, что следование этим инструкциям помогло найти, в чем проблема. Для меня это был убийца, не знающий, что сломано.

http://mythinkpond.wordpress.com/2011/07/01/tomcat-6-infamous-severe-error-listenerstart-message-how-to-debug-this-error/

цитирую по ссылке

в Tomcat 6 или выше регистратором по умолчанию является " java.утиль.logging " logger, а не Log4J. Поэтому, если вы пытаетесь добавить "log4j.файл "свойства" - это не сработает. Регистратор Java utils ищет файл под названием " logging.свойства", как указано здесь: http://tomcat.apache.org/tomcat-6.0-doc/logging.html

поэтому, чтобы добраться до деталей отладки, создайте "logging.свойства "файл в папке"/WEB-INF / classes " вашей войны, и все готово.

и теперь, когда вы перезагрузите Tomcat, вы увидите всю свою отладку в полной славе!!!

пример ведения журнала.файл свойств:

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler

Я столкнулся с этой ошибкой, когда JDK, который я скомпилировал приложение, отличался от tomcat JVM. Я проверил, что менеджер Tomcat запускал jvm 1.6.0, но приложение было скомпилировано под java 1.7.0.

после обновления Java и изменения JAVA_HOME в нашем скрипте запуска (/etc / init.d / tomcat) ошибка исчезла.


ответ, предоставленный Tom Saleeba, очень полезен. Сегодня я также боролся с той же ошибкой

апр 28, 2015 7:53: 27 pm org.апаш.Каталина.ядро.StandardContext startInternal Серьезно: ошибка listenerStart

Я последовал предложению и добавил ведение журнала.файл свойств. А ниже была причина моей неудачи:--1-->

java.ленг.IllegalStateException: не удается установить корневую систему веб-приложения свойство, когда файл WAR не расширено

основной причиной проблемы был прослушиватель (Log4jConfigListener), который я добавил в интернет.XML. И по ссылке SEVERE: исключение org.springframework.сеть.утиль.Log4jConfigListener этот слушатель не может быть добавлен в войну, которая не расширяется.

кому-то может быть полезно знать, что это происходит на OpenShift JBoss gear.