web-dev-qa-db-fra.com

Tomcat 7.0.73 ne fonctionne pas avec Java 9

Impossible de démarrer une application Tomcat avec Java 9 en raison de l'option par défaut "Java.endorsed.dirs" dans catalina.sh.

-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.

Y at-il un travail autour de cela?

11
learner

Vous devrez pirater le script bin/catalina.sh pour que cela fonctionne.

Il y a beaucoup de lignes comme celle-ci dans bin/catalina.sh:

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

Supprimez simplement la seconde de ces lignes (celle avec -Djava.endorsed.dirs) dans chaque cas et vous devriez être de retour dans les affaires.

Je cherche à améliorer ces scripts afin que -Djava.endorsed.dirs ne soit pas fourni à la machine virtuelle Java lorsque la valeur est vide (ce qui devrait être le cas si vous utilisez Java 9).

UPDATE 2017-11-06

On dirait que r1810284 devrait résoudre le problème endorsed.dirs. Attendez-vous à ce que ce correctif soit inclus dans Tomcat 7.0.83 (ou quelle que soit la version 7.0.x adoptée avec vote).

UPDATE 2018-03-07

La première version officielle d'Apache Tomcat 7.0.x incluant ce correctif est Apache Tomcat 7.0.84, votée stable le 2018-01-24.

16
Christopher Schultz

Le problème ci-dessus a été résolu avec les versions ultérieures d'Eclipse, mais il est malheureusement réapparu avec la version de Java 10. Voici ma recherche: dans votre question. Mais, au moment où j'ai installé Java 9 et que j'ai pointé mon serveur d'exécution Apache Tomcat, l'erreur a disparu.

4
Mak_Amit007

-Djava.endorsed.dirs = C:\Program Files\Apache Software Foundation\Tomcat 9.0\endossé n'est pas pris en charge. Les normes approuvées et les API autonomes. Les versions modulaires seront supportées via le concept de modules pouvant être mis à niveau.

Pour résoudre ce problème, vous devez installer/mettre à jour la plate-forme WTP (Eclipse Web Tools Platform) vers la version 3.9.4 ou ultérieure.

Sélectionnez Aide> Installer un nouveau logiciel ... Sélectionnez ou ajoutez l'URL suivante: http://download.Eclipse.org/webtools/repository/oxygen Vérifiez les outils Web (WTP) 3.9.4 Sélectionnez "Suivant" et suivez les instructions

Reconfigurez le Tomcat dans Eclipse.

2
Amit Tyagi

Dans mon cas, ce que j’ai fait pour résoudre le problème de Tomcat non en cours d’exécution a été de définir Tomcat (version 7) avec une version Java inférieure (par exemple Java 8).

Ensuite, dans startup.sh , shutdown.sh et catalina.sh j'ai ajouté ce qui suit:

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