Ich versuche das tutoial . Ich habe ein neues Projekt erstellt und es gestartet. Tomcat fing an, aber dann passierte nichts. Ich kann manuell im Browser http://localhost:8080
öffnen und die Tomcat-Homepage anzeigen. Dies bedeutet, dass der Server gestartet werden kann. Ich kann index.jsp jedoch nicht öffnen. Hier ist mein Bildschirm nach dem Start: Screenshot Wie Sie sehen, läuft das Projekt, aber keine Informationen über übergebene Umgebungsvariablen. Keine Protokolle.
Ich benutze Tomcat 7.0.27
Idee 12.1.6
unter Opensuse 12.2
Mein Tomcat HOME-Ordner ist /usr/share/Tomcat
Es gab ein Problem: Idea konnte keine conf-Dateien aus/usr/share/Tomcat/conf nach /home/loco/.IntelliJIdea12/system/Tomcat//conf kopieren. Ich habe chmod 777 *
in /usr/share/Tomcat and the problem gone.
ausgeführt
Außerdem habe ich die Art und Weise geändert, wie Tomcat gestartet wird. Es war Standardwert
/usr/share/Tomcat/bin/catalina.sh run
Ich wechselte zu
/usr/share/Tomcat/bin/catalina.sh start
Alle anderen Schritte werden gemäß Tutorial ausgeführt.
Das Problem tritt auf, wenn ein Skript im Tomcat-Startsatz von Skripts (meistens setenv.sh
/setenv.bat
) die Umgebungsvariable Java_OPTS
überschreibt, ohne den ursprünglichen Wert einzuschließen. IDEA legt Java_OPTS
fest, um Tomcat mitzuteilen, dass 1099 auf JMX-Anforderungen auf Statusinformationen und Bereitstellungen überprüft wird.
Ein Beispiel für eine Zeile aus einem setenv.sh
, die unterbrochen wird:
export Java_OPTS="-XX:MaxPermSize=512m -Xmx1024m"
die korrigierte Version:
export Java_OPTS="$Java_OPTS -XX:MaxPermSize=512m -Xmx1024m"
Dieselbe Beispielzeile aus einer Windows-setenv.bat
-Datei:
set Java_OPTS=-XX:MaxPermSize=512m -Xmx1024m
und korrigiert:
set Java_OPTS=%Java_OPTS% -XX:MaxPermSize=512m -Xmx1024m
Wenn Sie Tomcat nur innerhalb von IDEA ausführen, können Sie wie von anderen vorgeschlagen vorgeschlagen, die Zeile aus Ihrem setenv
-Skript entfernen und die jvm-Optionen in die Ausführungskonfiguration von IDEA einfügen.
Ich habe das Problem behoben, indem ich meine setenv.bat in $ CATALINA_HOME/bin entfernt habe. Hier waren die Einstellungen drin:
set Java_OPTS=-server -Xmx768m -XX:MaxPermSize=256M
Ich habe diese Optionen nicht mehr benötigt, also habe ich die Datei einfach entfernt. Wie die Antwort von prule sagt, können Sie diese Optionen in die Intellij Run-Konfiguration verschieben. Nach dem Entfernen der Datei funktionierte die Bereitstellung in IntelliJ einwandfrei.
edit: Um eine bessere Antwort zu erhalten, warum dies funktioniert, überprüfen Sie die Antwort unter codelark unten . Außerdem können Sie mit seiner Methode Ihre setenv.sh/setenv.bat -Dateien behalten, was nützlich ist, wenn Sie Ihren Tomcat nicht nur von IntelliJ IDEA aus ausführen.
Das Entfernen von setenv.sh
aus $CATALINA_HOME/bin
hat auch für mich funktioniert. Ich verwende Tomcat7/Ubuntu/IntelliJ 12
Mit setenv.sh
im bin-Ordner sehe ich beim Starten von IJ in den Protokollen:
/usr/local/Tomcat/Apache-Tomcat-7.0.52/bin/catalina.sh run
[2014-07-28 02:41:39,274] Artifact TomcatDebug:war exploded: Server is not connected. Press 'Deploy' to start deployment.
Jul 28, 2014 2:41:40 PM org.Apache.catalina.core.AprLifecycleListener init
[email protected]:/usr/local/Tomcat/Apache-Tomcat-7.0.52$ Sudo netstat -tulpn|grep 2928
tcp6 0 0 :::8080 :::* LISTEN 2928/Java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2928/Java
tcp6 0 0 :::8009 :::* LISTEN 2928/Java
Nach dem Entfernen sehe ich in den Protokollen: INFO: Serverstart in 76 ms Verbindung zum Server [2014-07-28 02: 44: 35,847] Artefakt TomcatDebug: Krieg explodiert: Artefakt wird eingesetzt, bitte warten ... [2014-07-28 02: 44: 36,512] Artefakt TomcatDebug: Krieg explodiert: Artefakt wurde erfolgreich eingesetzt
[email protected]:/usr/local/Tomcat/Apache-Tomcat-7.0.52$ Sudo netstat -tulpn|grep 2346
tcp6 0 0 :::8080 :::* LISTEN 2346/Java
tcp6 0 0 :::50044 :::* LISTEN 2346/Java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2346/Java
tcp6 0 0 :::8009 :::* LISTEN 2346/Java
tcp6 0 0 :::1099 :::* LISTEN 2346/Java
tcp6 0 0 :::52268 :::* LISTEN 2346/Java
Scheint so, als hätte der setenv.sh
$Java_OPTS
überschrieben und die JNDI auf Port 1099 gestört.
file->project structure->Project SDK
konfigurieren Sie dann das SDK neu.
Das hat mein Problem wirklich gelöst.
Ich verstehe nicht viel über die Theorie davon, aber ich habe den gleichen Fehler erhalten. Nach etwas warten erhielt ich eine Nachricht:
Fehler bei der Artefaktbereitstellung. Weitere Informationen finden Sie im Serverprotokoll.
Ich fand die Protokolldatei, die vermutlich "Tomcat localhost.log" bedeutet, und es gab dort eine Stack-Ablaufverfolgung für "NoClassDefFoundError" und "ClassNotFoundException". Ich habe eine Aktualisierung von Maven und ein "Rebuild-Projekt" durchgeführt, und das hat den Trick gebracht.
(3.2) JRE_HOME oder Java_HOME setzen (erforderlich)
Diese Variablen werden verwendet, um den Speicherort einer Java-Laufzeitumgebung oder eines Java Development Kit anzugeben, das zum Starten von Tomcat verwendet wird.
Die JRE_HOME-Variable wird verwendet, um den Speicherort einer JRE anzugeben. Die Java_HOME-Variable wird verwendet, um den Speicherort eines JDK anzugeben.
Die Verwendung von Java_HOME ermöglicht den Zugriff auf bestimmte zusätzliche Startoptionen, die bei Verwendung von JRE_HOME nicht zulässig sind.
Wenn sowohl JRE_HOME als auch Java_HOME angegeben sind, wird JRE_HOME verwendet.
Ich hatte dieses Problem mit Tomcat 7.0.27 . Ich habe ein Upgrade auf Tomcat 8.0.21 durchgeführt und das Problem behoben. :)
Wechseln Sie zu Tomcat BIN DIRECTORYRun mit dem Befehl Fordern Sie den folgenden Befehl an
cd Tomcat-9991\bin
catalina.bat run
die Ausgabe, die ich bekam, war
Exception in thread "main" Java.lang.UnsupportedClassVersionError: org/Apache/catalina/startup/Bootstrap : Unsupported major.minor version 52.0
at Java.lang.ClassLoader.defineClass1(Native Method)
at Java.lang.ClassLoader.defineClass(ClassLoader.Java:800)
at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:142)
at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:449)
at Java.net.URLClassLoader.access$100(URLClassLoader.Java:71)
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:361)
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:355)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:354)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:425)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:308)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:358)
at Sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.Java:482)
Als Hinweis darauf, dass ein Problem mit der Java-Version zwischen meinem Tomcat und dem JDK aufgetreten ist, habe ich dies ebenfalls festgelegt.
Ich könnte das Problem beheben, indem ich mich auf die korrekte Version von JDK beziehe.
Eine einfache Möglichkeit besteht darin, die Portnummer in dieser Datei zu ändern:
-Dcom.Sun.management.jmxremote.port=1099
beachten Sie den Port, der Standardwert ist 1099, aber wenn Sie JMX verwenden, kann es von Ihnen oder jemandem geändert werden. Ändern Sie einfach den Port. Das wird in Ordnung sein. Sie müssen ihn nicht aus dem Bin-Ordner von Tomcat entfernen.
Wenn Sie die /etc/hosts
-Datei geändert haben, müssen Sie eine Zeile localhost YOU_USER_NAME
hinzufügen.
Dieses Problem tritt auf, wenn ich versuche, ein Projekt von Eclipse nach IDEA zu importieren.
Es gibt keinen setter.sh
in $CATALINA_HOME/bin
. Die Einstellung Project Structure
und Run Configuration
in IDEA sieht in Ordnung aus. Das gesamte Projekt funktioniert normalerweise in Eclipse, zeigt diesen Fehler jedoch in IDEA.
Meine Lösung ist, den Ordner .idea
zu löschen, das gesamte Projekt erneut zu importieren. Ich weiß nicht, was die genaue Ursache für dieses Problem ist, aber es funktioniert für mich.
Jetzt sieht das Protokoll so aus:
/Library/Tomcat/bin/catalina.sh run
[2015-09-22 12:40:57,906] Artifact bookstore:war exploded: Server is not connected. Deploy is not available.
XXXXXX
Connected to server
[2015-09-22 12:40:58,848] Artifact bookstore:war exploded: Artifact is being deployed, please wait...
XXXXXX
[2015-09-22 12:41:07,862] Artifact bookstore:war exploded: Artifact is deployed successfully
[2015-09-22 12:41:07,863] Artifact bookstore:war exploded: Deploy took 9,015 milliseconds
Ein weiterer Grund, wenn Ihr Tomcat-Pfad leer oder '(') ist, tritt dieser Fehler ebenfalls auf.
Ich hatte dieses Problem, als ich Java_OPTS in catalina.bat gesetzt hatte. Wenn Sie dies entfernen, bedeutet dies, dass Tomcat wie erwartet gestartet und bereitgestellt wurde. Die Java_OPTS-Werte können in der Intellij Run-Konfiguration festgelegt werden.