web-dev-qa-db-ja.com

Tomcat 7.0.73は、Java 9では動作しません

Catalina.shのデフォルトの「Java.endorsed.dirs」オプションのため、Java 9でTomcatベースのアプリを起動できません。

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

これに対する回避策はありますか?

15
learner

これを機能させるには、スクリプトbin/catalina.shをハックする必要があります。

bin/catalina.shには次のような行があります:

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

いずれの場合も、それらの行の2番目(-Djava.endorsed.dirsが付いている行)を削除するだけで、ビジネスに戻るはずです。

値が空の場合に-Djava.endorsed.dirsがJVMに提供されないように、これらのスクリプトを改善することを検討しています(Java 9)を使用している場合に当てはまります)。

UPDATE 2017-11-06

r1810284endorsed.dirsの問題を修正するはずです。この修正がTomcat 7.0.83(または次の7.0.xバージョンが投票に合格するもの)に含まれることを期待してください。

UPDATE 2018-03-07

この修正を含むApache Tomcat 7.0.xの最初の公式リリースはApache Tomcat 7.0.84であり、2018-01-24に安定投票されました。

19

上記の問題は、Eclipseの以降のリリースで修正されましたが、残念なことにJava10のリリースで再び現れました。ここに私の研究があります:最初、Java10およびEclipse Oxygen 3あなたの質問で言及したのと同じエラーを私に与えました。しかし、Java9をインストールし、Apache Tomcatランタイムサーバーにポイントした時点で、エラーはなくなりました。

4
Mak_Amit007

-Djava.endorsed.dirs = C:\ Program Files\Apache Software Foundation\Tomcat 9.0\endorsedはサポートされていません。承認された標準およびモジュール形式のスタンドアロンAPIは、アップグレード可能なモジュールの概念を介してサポートされます。

このバグを修正するには、Eclipse Web Tools Platform(WTP)をバージョン3.9.4以降にインストール/更新する必要があります。

[ヘルプ]> [新しいソフトウェアのインストール...]を選択します。次のURLを選択または追加します。 http://download.Eclipse.org/webtools/repository/oxygen Check Web Tools Platform(WTP)3.9.4 [Next]を選択します「指示に従ってください

EclipseでTomcatを再構成します。

2
Amit Tyagi

私の場合、Tomcatが実行されないという問題に答えるために行ったのは、Tomcat(バージョン7)をより低いJavaバージョン(たとえばJava 8 )。

次に、startup.shshutdown.shおよびcatalina.shで、次を追加しました。

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

この現象は、Java 9より前のJREを使用するTomcatランタイムがあり、そのランタイムでサーバーを作成して実行する場合に発生します。次に、Java 9でサーバーを起動しようとすると、サーバーが以前のJREで実行されたときに、起動構成に「-Djava.endorsed.dirs」引数が追加されます。 Java 9、 "-Djava.endorsed.dirs"引数は、ユーザーがVM引数を追加して保持したため、エラーになります。

修正する最も簡単な方法は、サーバーを再作成することです。サーバービューでサーバーを右クリックして、[開く]を選択することもできます。開いたウィンドウで、「一般」セクションの下部にある「起動構成を開く」リンクをクリックします。開いたダイアログで、[引数]タブに切り替え、[VM引数]セクションで[-Djava.endorsed.dirs]引数を編集して、[OK]をクリックします。これでサーバーを起動できるはずです。

0
Sri