Jak rozwiązać błąd listenerStart podczas wdrażania aplikacji internetowej w Tomcat 5.5?

Zainstalowałem aplikację internetową Apache Wicket, która wykorzystuje Spring i Hibernate do mojej instancji Tomcat 5.5. Po przejściu do interfejsu Tomcat Manager widzę, że aplikacja internetowa, którą wdrożyłem, nie działa. Po naciśnięciu 'Start' pojawia się następujący komunikat o błędzie; "FAIL-Application at context path /spaghetti Couldn 't be started".

Moja catalina.log zawiera:
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

Fragment z sieci.xml:

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
Każda pomoc jest bardzo mile widziana.
Author: Ahmed Ashour, 2010-04-15

4 answers

/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

Powinieneś Nie mieć żadnych bibliotek specyficznych dla serwera w /WEB-INF/lib. Zostaw je we własnej bibliotece serwera aplikacji. Prowadziłoby to tylko do kolizji na ścieżce klasowej. Pozbądź się wszystkich bibliotek specyficznych dla appserver w /WEB-INF/lib (a także w JRE/lib i JRE/lib/ext, Jeśli umieściłeś tam którąkolwiek z nich).

Częstą przyczyną, że biblioteki specyficzne dla appserver są zawarte w bibliotece webapp jest to, że początkujący uważają, że jest to właściwy sposób, aby naprawić błędy kompilacji między innymi javax.servlet klasy nie mogą być rozwiązywalne. Umieszczenie ich w bibliotece webapp jest złym rozwiązaniem. Należy odwołać się do nich w classpath podczas kompilacji, tj. javac -cp /path/to/server/lib/servlet.jar i tak dalej, lub jeśli używasz IDE, należy zintegrować serwer w IDE i skojarzyć projekt sieci web z serwerem. IDE automatycznie pobierze biblioteki specyficzne dla serwera w classpath (buildpath ) projektu webapp.

 32
Author: BalusC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-16 10:48:15

Odkryłem, że przestrzeganie tych instrukcji pomogło w znalezieniu problemu. Dla mnie to był zabójca, nie wiedząc, co jest zepsute.

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

Cytowanie z linku

W Tomcat 6 lub nowszym, domyślnym rejestratorem jest " java.util.logging "logger a nie Log4J. więc jeśli próbujesz dodać plik" log4j. properties – - to nie zadziała. Logger Java utils szuka pliku o nazwie " logging.właściwości " jak podano tutaj: http://tomcat.apache.org/tomcat-6.0-doc/logging.html

Więc aby przejść do szczegółów debugowania Utwórz " logging.properties "file under your"/WEB-INF / classes "folder of your WAR and you' re all set.

A teraz po ponownym uruchomieniu Tomcat, zobaczysz wszystkie swoje debugowanie w it ' s full glory!!!

Rejestrowanie próbek.Plik Właściwości:

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler
 62
Author: Tom Saleeba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-05 04:40:03

Napotkałem ten błąd, gdy JDK, pod którym skompilowałem aplikację, różnił się od tomcat JVM. Zweryfikowałem, że Menedżer Tomcat był uruchomiony jvm 1.6.0, ale aplikacja została skompilowana pod java 1.7.0.

Po aktualizacji Java i zmianie JAVA_HOME w naszym skrypcie startowym (/etc / init.d / tomcat) błąd zniknął.

 9
Author: Colin D,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-06 18:29:28

Odpowiedź udzielona przez Toma Saleeba jest bardzo pomocna. Dzisiaj również zmagałem się z tym samym błędem

/ 28 kwi 19:53:27Apacz.catalina.rdzeń.Standardkontekst startInternal SEVERE: Error listenerStart

Zastosowałem się do sugestii i dodałem logowanie.Plik Właściwości. A poniżej moja przyczyna porażki:

Java.lang.IllegalStateException: nie można ustawić systemu głównego aplikacji internetowej właściwość gdy plik wojny nie jest rozwijany

Korzeń przyczyną problemu był listener (Log4jConfigListener), który dodałem do sieci.xml. I zgodnie z linkiem SEVERE: Exception org.springframework.www.util.Log4jConfigListener , tego słuchacza nie można dodać w WAR, która nie jest rozszerzona.

To może być pomocne dla kogoś, aby wiedzieć, że to się dzieje na OpenShift JBoss gear.

 1
Author: Agry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:44