Java 11 + Tomcat 9 = java.lang.module.FindException:找不到模块java.xml.bind

时间:2019-10-25 09:55:23

标签: java tomcat java-11

我最近升级到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。

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

1 个答案:

答案 0 :(得分:0)

忽略此。我在.bashrc中发现了一个流氓环境参数:

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

这是悲伤的根源。