繁体   English   中英

找不到SOAPConnectionFactory的类定义

[英]No class def found for SOAPConnectionFactory

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

我了解SOAP库在Java 9中已被弃用,但尚未删除。 我在适当的module-info中将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周围摸索了一下,寻找单独的发行版,但还没有找到任何东西。

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

但是,module-info文件向我发出警告,提示我的模块从2个名称相同的源中读取java.xml.ws 但是项目运行了,这对我来说现在很重要。 稍后,我将解决如何处理歧义,如果可以,请更新此答案。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM