繁体   English   中英

Tomcat 7.0.73 不适用于 Java 9

[英]Tomcat 7.0.73 doesn't work with 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.

有解决办法吗?

您必须破解脚本bin/catalina.sh才能使其工作。

bin/catalina.sh有很多这样的行:

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

只需在每种情况下删除这些行中的第二行(带有-Djava.endorsed.dirs ),您就应该重新开始工作。

我正在考虑改进这些脚本,以便在值为空时不向 JVM 提供-Djava.endorsed.dirs (如果您使用的是 Java 9,情况应该如此)。

更新 2017-11-06

看起来r1810284应该可以修复endorsed.dirs.dirs问题。 预计此修复程序将包含在 Tomcat 7.0.83(或下一个 7.0.x 版本通过投票的任何版本)中。

更新 2018-03-07

包含此修复程序的 Apache tomcat 7.0.x 的第一个正式版本是 Apache Tomcat 7.0.84,于 2018 年 1 月 24 日投票为稳定版。

上述问题在 Eclipse 的后续版本中得到了修复,但不幸的是,随着 Java 10 的发布,它再次出现。这是我的研究:最初,我安装了 Java 10 和 Eclipse Oxygen 3,这给了我你在问题中提到的相同错误. 但是,在我安装 Java 9 并将我的 Apache tomcat 运行时服务器指向它的那一刻,错误消失了。

要修复此错误,您需要将 Eclipse Web 工具平台 (WTP) 安装/更新到 3.9.4 或更高版本。

选择帮助 > 安装新软件... 选择或添加以下 URL: http://download.eclipse.org/webtools/repository/oxygen检查 Web 工具平台 (WTP) 3.9.4 选择“下一步”并按照说明进行操作

在eclipse中重新配置tomcat。

如果您有使用早于 Java 9 的 JRE 的 Tomcat 运行时并使用该运行时创建和运行服务器,则可能会出现此症状。 然后编辑 Tomcat Runtime 以使用 Java 9 并尝试启动服务器。 当服务器使用早期的 JRE 运行时,“-Djava.endorsed.dirs”参数被添加到启动配置中。 在切换到 Java 9 后运行服务器时,“-Djava.endorsed.dirs”参数被视为用户添加的 VM 参数并保留,从而导致错误。

最简单的修复方法是重新创建服务器。 您也可以在服务器视图中右键单击服务器并选择打开。 在打开的窗口中,单击常规部分底部的“打开启动配置”链接。 在打开的对话框中,切换到 Arguments 选项卡,在“VM arguments”部分,编辑“-Djava.endorsed.dirs”参数并单击 OK。 您现在应该可以启动服务器了。

就我而言,我为解决 Tomcat 未运行问题所做的工作是将 Tomcat(版本 7)设置为较低的 Java 版本(例如 Java 8)。

然后,在startup.shshutdown.shcatalina.sh 中我添加了以下内容:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`;

在运行配置 -> 参数 -> VM 参数中尝试删除

-Djava.endorsed.dirs="C:\\Program Files\\Apache Software Foundation\\Tomcat 8.5\\endorsed"

你必须删除 -

"-Djava.endorsed.dirs="/home/ttlaptop/Downloads/apache-tomcat-7.0.105/endorsed"

从运行配置,然后tomcat将启动

我不能确定但是..

第 1 步 --> 它对我有用,我只是从 Eclipse 中删除服务器

步骤 2 --> 重新启动并再次添加服务器(tomcat 7)Tomcat v7.0 Server at localhost

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM