【问题标题】:Java 11 + Tomcat 9 = java.lang.module.FindException: Module java.xml.bind not foundJava 11 + Tomcat 9 = java.lang.module.FindException:找不到模块 java.xml.bind
【发布时间】:2020-02-21 16:06:16
【问题描述】:

我最近升级到 Mint 19 并回到了一个在 Tomcat 上运行的迷你 Java 项目。

当我启动 Tomcat 时,我看到:

Using CATALINA_BASE:   /opt/apache-tomcat-9.0.17
Using CATALINA_HOME:   /opt/apache-tomcat-9.0.17
Using CATALINA_TMPDIR: /opt/apache-tomcat-9.0.17/temp
Using JRE_HOME:        /usr/lib/jvm/default-java
Using CLASSPATH:       /opt/apache-tomcat-9.0.17/bin/bootstrap.jar:/opt/apache-tomcat-9.0.17/bin/tomcat-juli.jar
Tomcat started.
java.lang.module.FindException: Module java.xml.bind not found
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
Error occurred during initialization of boot layer
java.lang.module.FindException: Module java.xml.bind not found
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
-Djava.endorsed.dirs=/opt/apache-tomcat-9.0.17/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.
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
Error occurred during initialization of boot layer
java.lang.module.FindException: Module java.xml.bind not found

我花了几个小时在网站上搜索如何解决这个问题,但找不到具体的答案。

我尝试将 jaxb jar 文件弹出到 Tomcat 的 lib 中,并将其包含在类路径中。没有任何效果。

如果有帮助,我的 OpenJDK 中的 jmods 目录不包含 java.bind.xml。它只有 java.xml.crypto.jmod 和 java.xml.jmod。

它是要成为模块化安装的一部分,还是我找错了树?

【问题讨论】:

  • 我也遇到了同样的问题。我添加了模块,所以我通过破解 /etc/init.d 脚本在我的 tomcat 启动脚本上有 --add-modules java.xml.bind 但它仍然失败
  • 我无法重现您的问题。我下载了 Tomcat 9.0.17(它不是由 apt 安装的)并且正在使用从 apt 安装的openjdk version "11.0.5-ea" 2019-10-15。您是否尝试过直接从 tomcat.apache.org 使用 Tomcat 版本?
  • 我正在使用 OpenJDK 11 和从 tomcat.apache.org 下载的 Tomcat。我没有尝试过 Oracle 自己的 Java SDK,所以也许可以解决它。然而,Java 11 可能破坏了很多东西,这让我感到困扰。

标签: java tomcat java-11


【解决方案1】:

忽略这个。我在我的 .bashrc 中发现了一个恶意环境参数:

export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.xml.bind'

这是悲伤的根源。

【讨论】:

    猜你喜欢
    • 2021-07-27
    • 2021-12-02
    • 2019-05-16
    • 2018-04-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多