运行我的项目时,我收到错误消息:
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
添加到add-modules时,找不到该模块。
我的问题是:
java.xml.soap
JRE模块吗?java.xml.soap
不是JRE模块,为什么java.xml.ws
模块依赖于不在JRE中的模块?java.xml.soap
模块?我正在使用java 9.0.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.soap
(javax.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。