没有找到SOAPConnectionFactory的类def

问题描述 投票:0回答:1

我正在使用模块从Java 9(jdk 9.0.4)中的Java 8重新构建应用程序。其中一个模块需要向我们的服务器发出SOAP调用,以检查各种服务是否正在运行,然后通过电子邮件报告这些服务的状态。

我知道SOAP库已在Java 9中弃用但尚未删除。我在适当的模块信息中声明了java.xml.ws模块的要求:

module services {
    exports com.nams.hyperion.services;

    requires configurations;
    requires java.xml.ws;
}

它编译,但我尝试运行项目时出错:java.lang.NoClassDefFoundError: javax/xml/soap/SOAPConnectionFactory

scf = SOAPConnectionFactory.newInstance(); <-- error here
conn = scf.createConnection();
mf = MessageFactory.newInstance();
msg = mf.createMessage();

我尝试使用--add-modules java.xml.ws编译器选项,但这不能解决问题;我的Java安装没有这个模块吗?我有什么选择?我已经在maven周围寻找一个单独的发行版,但还没有找到任何东西。

java intellij-idea
1个回答
0
投票

我找到了一个可以使用的Maven发行版:https://search.maven.org/artifact/com.sun.xml.ws/rt-jdk9/2.3.0/jar

但是,module-info文件给我一个警告,我的模块从2个同名的源读取java.xml.ws;但项目正在运行,这对我来说至关重要。我将研究如何处理模糊性,如果我设法做到这一点,我会更新这个答案。

更新:我通过从模块的依赖项中删除jar文件解决了歧义,但将其保留在Maven的依赖项列表中。

© www.soinside.com 2019 - 2024. All rights reserved.