JRE 9模块需要找不到的模块

时间:2017-12-12 09:18:46

标签: java java-9 jigsaw

运行我的项目时,我收到错误消息:

Error occurred during initialization of boot layer
java.lang.module.FindException: Module java.xml.soap not found, required by java.xml.ws

据我所知,java.xml.ws是一个JRE模块而java.xml.soap不是,基于the documentation中提供的列表。我启动程序的方式是:

java --upgrade-module-path c:/git/projectdir --add-modules java.xml.bind,java.xml.ws,java.xml.ws.annotation  -cp c:/git/projectdir/Uservice.jar com.gert.DynamicService "arg1" "arg2" "arg3"

当我尝试将java.xml.soap添加到a​​dd-modules时,找不到该模块。

我的问题是:

  • java.xml.soap JRE模块吗?
  • 如果java.xml.soap不是JRE模块,为什么java.xml.ws模块依赖于不在JRE中的模块?
  • 在哪里找到java.xml.soap模块?

我正在使用java 9.0.1

1 个答案:

答案 0 :(得分:3)

  

java.xml.soap是JRE模块吗?

不,这不是一个平台模块。运行java --list-modules,您将不会在输出中看到java.xml.soap

  

如果java.xml.soap不是JRE模块,为什么java.xml.ws模块依赖于不在JRE中的模块?

有两个java.xml.ws模块。

第一个是平台模块,不推荐使用它(你不应该使用它)。

第二个是独立模块,以jaxws-api部署到Maven中心(您应该使用此模块)。

虽然这两个模块相似,但存在许多差异。其中之一是独立的java.xml.ws有自己的依赖项。例如。 java.xml.ws取决于部署到Maven中心的java.xml.soapjavax.xml.soap-api)。

  

在哪里可以找到java.xml.soap模块?

见上文。你可以在Maven中心找到它。如果您使用Maven,它应该作为jaxws-api的依赖项自动选取。

我认为,您的可升级文件夹java.xml.soap中缺少c:/git/projectdir。您应该从.m2\repository\javax\xml\soap\javax.xml.soap-api复制jar。