wake-up-neo.net

Tomcat 7.0.73 funktioniert nicht mit Java 9

Tomcat-basierte Anwendung kann nicht mit Java 9 gestartet werden, da die Standardoption "Java.endorsed.dirs" in catalina.sh verwendet wird.

-Djava.endorsed.dirs=/usr/local/share/Tomcat/endorsed is not supported. Endorsed standards and standalone APIs in modular form will be supported via the concept of upgradeable modules. 
Error: Could not create the Java Virtual Machine. 
Error: A fatal exception has occurred. Program will exit.

Gibt es dafür eine Umgehung?

11
learner

Sie müssen das Skript bin/catalina.sh hacken, damit dies funktioniert.

Es gibt eine Reihe von Zeilen in bin/catalina.sh:

  exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $Java_OPTS $CATALINA_OPTS \
    -Djava.endorsed.dirs="$Java_ENDORSED_DIRS" -classpath "$CLASSPATH" \
    ...

Entfernen Sie einfach die zweite dieser Zeilen (die mit -Djava.endorsed.dirs) und Sie sollten wieder im Geschäft sein.

Ich bin dabei, diese Skripts so zu verbessern, dass -Djava.endorsed.dirs der JVM nicht zur Verfügung gestellt wird, wenn der Wert leer ist (was bei Java 9 der Fall sein sollte).

UPDATE 2017-11-06

Sieht so aus, als würde r1810284 das endorsed.dirs-Problem beheben. Erwarten Sie, dass dieses Update in Tomcat 7.0.83 enthalten ist (oder was auch immer die nächste Version von 7.0.x passiert).

UPDATE 2018-03-07

Die erste offizielle Version von Apache Tomcat 7.0.x, die dieses Update enthält, ist Apache Tomcat 7.0.84, die am 2018-01-24 stabil gewählt wurde.

16

Das obige Problem wurde mit den späteren Versionen von Eclipse behoben, aber leider erschien es erneut mit der Veröffentlichung von Java 10. Hier meine Untersuchung: Zunächst habe ich Java 10 und Eclipse Oxygen 3 installiert, was zu dem von Ihnen erwähnten Fehler führte in deiner Frage. Im Moment, als ich Java 9 installierte und meinen Apache Tomcat-Laufzeitserver darauf verwies, war der Fehler weg.

4
Mak_Amit007

-Djava.endorsed.dirs = C:\Programme\Apache Software Foundation\Tomcat 9.0\endorsed wird nicht unterstützt. Unterstützte Standards und eigenständige APIsin modularer Form werden durch das Konzept aufrüstbarer Module unterstützt.

Um diesen Fehler zu beheben, müssen Sie die Eclipse Web Tools Platform (WTP) auf Version 3.9.4 oder höher installieren/aktualisieren.

Wählen Sie Hilfe> Neue Software installieren .... __ Wählen Sie die folgende URL aus oder fügen Sie sie hinzu: http://download.Eclipse.org/webtools/repository/oxygen Wählen Sie "Weiter" und befolgen Sie die Anweisungen

Rekonfigurieren Sie den Tomcat in Eclipse.

2
Amit Tyagi

In meinem Fall habe ich Tomcat (Version 7) mit einer niedrigeren Java-Version (z. B. Java 8) festgelegt, um das Problem zu beheben, dass Tomcat nicht ausgeführt wurde.

Dann habe ich in startup.sh , shutdown.sh und catalina.sh Folgendes hinzugefügt:

export Java_HOME=`/usr/libexec/Java_home -v 1.8`;
1
purpleByte

Dieses Symptom kann auftreten, wenn Sie eine Tomcat-Laufzeitumgebung verwenden, die eine JRE vor Java 9 verwendet, und einen Server mit dieser Laufzeitumgebung erstellen und ausführen. Bearbeiten Sie anschließend die Tomcat-Laufzeitumgebung, um Java 9 und versuchen Sie, den Server zu starten. In diesem Fall wird der Startkonfiguration ein Argument "-Djava.endorsed.dirs" hinzugefügt, wenn der Server mit der früheren JRE ausgeführt wurde. Wenn der Server nach dem Wechsel zu ausgeführt wird Java 9, das Argument "-Djava.endorsed.dirs" wird als vom Benutzer hinzugefügtes VM Argument beibehalten, was zu dem Fehler führt.

Die einfachste Lösung besteht darin, den Server neu zu erstellen. Sie können auch mit der rechten Maustaste auf den Server in der Serveransicht klicken und Öffnen auswählen. Klicken Sie im folgenden Fenster auf den Link "Startkonfiguration öffnen" unten im Abschnitt "Allgemein". Wechseln Sie im daraufhin angezeigten Dialogfeld zur Registerkarte "Argumente" und bearbeiten Sie im Abschnitt "VM-Argumente" das Argument "-Djava.endorsed.dirs" und klicken Sie auf "OK". Sie sollten jetzt in der Lage sein, den Server zu starten.

0
Sri