Wenn ich Tomcat starte, wird folgende Fehlermeldung angezeigt:
Jun 10, 2010 5:17:25 PM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Jun 10, 2010 5:17:25 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/mywebapplication] startup failed due to previous errors
Es scheint seltsam, dass die Protokolle für Tomcat keinen Stack-Trace enthalten. Hat jemand einen Vorschlag, wie die Protokollierung in Tomcat erhöht werden kann, um Stapelspuren für solche Fehler zu erhalten?
Antworten:
Überprüfen Sie die von Tomcat erstellten
localhost_yyyy_mm_dd.log
ODER-localhost.yyyy-mm-dd.log
Protokolle. Diese speichern normalerweise diese Art von Informationen. Ich würde nicht erwarten, dass der gesamte Stacktrace auf Standard out ausgegeben wird.quelle
Erstellen Sie eine Datei mit dem Namen logging.properties in WEB-INF / classes mit folgendem Inhalt:
quelle
Tomcat protokolliert zwar den Stacktrace, es ist jedoch nicht immer klar, wo sich die Protokolldateien befinden, wenn Tomcat von einer IDE aus gestartet wird. Wenn ich es von IntelliJ aus starte,
CATALINA_BASE
ist es auf gesetzt${home}/.IntelliJIdea10/system/tomcat/Unnamed_r6-idea
und die Protokolldateien sind in[CATALINA_BASE]/logs
.Um die Protokolle anzuzeigen, suchen Sie entweder die Protokolldateien oder bearbeiten Sie sie
[CATALINA_HOME]/conf/logging.properties
, um die Tomcat-Logger-Ausgabe an die Konsole zu leiten. Unten habe ich der Standard-Tomcat-Konfiguration einen zweiten Handler hinzugefügt:Jetzt wird die vollständige Stapelverfolgung in der IntelliJ-Ausgabe angezeigt:
quelle
Sie müssen die Dateien kopieren
und starten Sie dann Tomcat neu
quelle
Möglicherweise wurde Ihre Anwendung mit einer anderen JRE als Tomcat kompiliert.
Überprüfen Sie
java -version
Ihren Server und kompilieren Sie Ihren Code mit derselben Version. Ich hatte den Fehler, weil meine Eclipse-Standard-JRE 1.6 war und Tomcat 1.5 verwendete - das kann nicht funktionieren.quelle
In CentOS 6 und Solr 4.4.0
Ich musste einige lib-Dateien komponieren, um diesen Fehler zu beheben
quelle
Normalerweise gibt es Informationen zu dem Problem in localhost. [Date] .log. Aber manchmal ist nichts in diesem Protokoll. Dies kann passieren, wenn die Konfiguration des Projekts fehlerhaft ist (mehrere Entwickler haben lange daran gearbeitet und jeder hat etwas von sich selbst hinzugefügt). Ich habe dieses Problem OHNE Informationen im Protokoll konfrontiert. Eher schneller und robuster Ansatz:
Versuchen Sie, alles, was Probleme verursachen kann, aus web.xml zu entfernen. Sie können sogar alles außer Tag entfernen. Wenn die Anwendung immer noch nicht bereitgestellt werden kann, fahren Sie fort.
Entfernen Sie jeden * .xml-Deskriptor aus WEB-INF / classes. Wenn die Anwendung nicht bereitgestellt werden kann, fahren Sie fort.
Entfernen Sie alle Protokollierungskonfigurationen, die Sie in Ihrem Krieg finden (logging.properties, log4j.properties). Versuchen Sie zu implementieren. In diesem Schritt habe ich einen informativeren Fehler erhalten, aber die Bereitstellung ist immer noch fehlgeschlagen.
Nachdem ich nach diesem Fehler gegoogelt hatte, stellte ich fest, dass das Projekt eine alte Version von xerces enthielt, die mit der neueren Version von Tomcat kollidierte und die zu implementierende Anwendung nicht enthielt. Nach dem Upgrade von xerces in der Webanwendung wurde alles in Ordnung.
quelle
Das Einrichten der log4j-Protokollierung für Tomcat ist ziemlich einfach. Folgendes wird aus http://tomcat.apache.org/tomcat-5.5-doc/logging.html zitiert :
Erstellen Sie eine Datei mit dem Namen log4j.properties mit dem folgenden Inhalt und speichern Sie sie in common / classes.
Laden Sie Log4J (v1.2 oder höher) herunter und platzieren Sie das log4j-Glas in $ CATALINA_HOME / common / lib.
Vielleicht möchten Sie auch einen Blick auf http://wiki.apache.org/tomcat/FAQ/Logging werfen
quelle
Wenn jemand einen Fehler wie SEVERE erhält: Fehler filterStart 29. April 2013, 16:49:20 Uhr org.apache.catalina.core.StandardContext startInternal SEVERE: Der Start von Context [/ TraceMW] ist aufgrund vorheriger Fehler fehlgeschlagen
Überprüfen Sie dann bitte, ob Ihr tomcat / lib-Verzeichnis enthält cors-filter-1.5.jar enthält oder nicht. Wenn Sie einen Punkt haben, wird der obige Fehler angezeigt und Ihre Anwendung ist nicht verfügbar.
Also habe ich es gerade geschafft, die JAR-Datei aus einem anderen Tomcat-Ordner zu kopieren und habe den oben genannten Fehler später nicht erhalten.
quelle
Auch ich habe den gleichen Fehler erhalten und mich sehr bemüht, dieses Problem zu beheben. Verbrachte ein wenig Zeit mit der Suche in Google und fand die folgende Lösung, und mein Problem wurde behoben.
Das Problem war darauf zurückzuführen, dass Struts2-Bibliotheken im Bereitstellungspfad fehlten. Die meisten Leute stellen die Bibliotheken möglicherweise zur Kompilierung bereit und vergessen häufig, die erforderlichen Bibliotheken zur Laufzeit anzuhängen. Also habe ich die gleichen Bibliotheken in der Webbereitstellungsassembly hinzugefügt, und das Problem war AUS.
quelle
Ich habe das gleiche Problem und konnte die Anwendung nicht starten, sobald sie in Tomcat bereitgestellt wurde. Sobald ich den Struts-Satz von Gläsern in das Verzeichnis CATALINA_HOME \ lib (Tomcat-Verzeichnis) kopiere, wird er aufgelöst. Sie müssen diese Gläser nicht in Ihrer WEB_INF \ lib haben, aber Sie müssen sie in Ihrem Build-Pfad haben.
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
freemarker-2.3.16.jar
javassist-3.11.0.GA.jar
struts2-konvention-plugin-2.2.1.jar
struts2-core-2.2.1.jar
xwork-core-2.2.1.jar
quelle
Ich wollte nur einen Beitrag leisten, nachdem ich die letzte Stunde mit einem fast identischen Problem verbracht hatte. Meine Lösung war, dass unsere .jar-Anwendung irgendwie beschädigt war, sodass das Platzieren des JARs von unserem Entwicklungsserver eine Lösung bot.
quelle
Ich hatte ein ähnliches Problem. Renatos Tipp hat bei mir funktioniert. Ich habe eine ältere Version von Java-Klassendateien (im Ordner WEB-INF / classes) verwendet und das Problem ist verschwunden. Es sollte also die Nichtübereinstimmung der Compilerversion gewesen sein.
quelle
Dies hat den Trick für mich getan: Entfernen Sie einfach alle Bibliotheken und kompilieren Sie sie und führen Sie sie aus. Es würde dazu führen, dass Fehler in Ihrem Projekt bestätigt werden. Führen Sie das Projekt erneut aus, nachdem Sie die Bibliotheken angewendet haben.
quelle
Im Allgemeinen ist die Server-JDK-Version niedriger als die bereitgestellte Anwendung (erstellt mit einer höheren JDK-Version).
quelle
Führen Sie den folgenden Befehl aus, um Catalina-Protokolle auf dem Terminal anzuzeigen ---
quelle