Java 9 模块中的 JAXB 问题

Rob*_*t K 3 java jaxb java-module

我正在升级我们的应用程序以使用 Java 9(婴儿学步......一旦我们让 9 工作,我们将跳到 10)。我们遇到的问题之一是在运行时,我们收到模块异常,而我似乎无法弄清楚发生了什么。诚然,我对模块很陌生,并且已经阅读了我能找到的有关该主题的所有内容,但我猜这可能是一个简单的答案。

调用的运行时间是

java --add-modules java.se,java.se.ee -cp mainjar.jar:jaxb-api.jar:jaxb-impl.jar:jaxb-core.jar foo.bar.Launch
Run Code Online (Sandbox Code Playgroud)

尝试读取 XML 数据时发生异常:

 WARN:09:22:10.777 [main] (Preference:969) - Failed to unmarshal preference value for key [launch.maxMemory]: javax.xml.bind.JAXBException: Package java.lang with JAXB class java.lang.Integer defined in a module java.base must be open to at least java.xml.bind module.
javax.xml.bind.JAXBException: Package java.lang with JAXB class java.lang.Integer defined in a module java.base must be open to at least java.xml.bind module.
    at java.xml.bind@9.0.4/javax.xml.bind.ModuleUtil.delegateAddOpensToImplModule(Unknown Source)
    at java.xml.bind@9.0.4/javax.xml.bind.ContextFinder.newInstance(Unknown Source)
    at java.xml.bind@9.0.4/javax.xml.bind.ContextFinder.newInstance(Unknown Source)
    at java.xml.bind@9.0.4/javax.xml.bind.ContextFinder.find(Unknown Source)
    at java.xml.bind@9.0.4/javax.xml.bind.JAXBContext.newInstance(Unknown Source)
    at java.xml.bind@9.0.4/javax.xml.bind.JAXBContext.newInstance(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

小智 6

我有类似的问题。
我有我的实体,并且用于处理 XML 并向文件添加一行com.redeg的类很有帮助。com.redeg.xmlopens com.redeg.xml to java.xml.bindmodule-info.java

module-info.java:

module com.redeg {
    exports com.redeg;
    requires java.xml.bind;
    opens com.redeg to java.xml.bind;
    opens com.redeg.xml to java.xml.bind;
}
Run Code Online (Sandbox Code Playgroud)