软件包javax.xml.ws不可见(Java 10)

时间:2018-08-01 17:50:10

标签: java java-10 java-module

wsimport生成的代码无法在Java 10.0.2中编译。我们已经尝试了各种库(包括提到的here)。

在大多数建议的库中,编译失败并缺少以下软件包:

error: package javax.xml.ws is not visible
error: package javax.jws is not visible

我们可以使用以下库来克服编译错误:

compile group: 'javax.xml.ws', name: 'jaxws-api', version: '2.3.0'
compile group: 'javax.jws.jsr181-api', name: 'jsr181-api', version: '2.1.1'

我们还包括以下jaxb库:

compile group: 'org.glassfish.jaxb', name: 'jaxb-core', version: '2.3.0.1'
compile group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.0.1'

但是,这在运行时由于NullPointerException而失败。

这是Service.java中的代码:

protected Service(java.net.URL wsdlDocumentLocation, QName serviceName) {
    delegate = Provider.provider().createServiceDelegate(wsdlDocumentLocation, // line 112
            serviceName,
            this.getClass());
}

这是从为Web服务生成的代码中调用的:

public IMOTPWS(URL wsdlLocation) {
    super(wsdlLocation, IMOTPWS_QNAME);
}

这是示例副本的堆栈轨迹:

java.lang.NullPointerException
        at javax.xml.ws.Service.<init>(Service.java:112)
        at com.automationrhapsody.reststub.resources.IMOTPWS.<init>(IMOTPWS.java:47)
        at com.automationrhapsody.reststub.RestStubApp.createImoSoapClient(RestStubApp.java:34)
        at com.automationrhapsody.reststub.RestStubApp.run(RestStubApp.java:28)
        at com.automationrhapsody.reststub.RestStubApp.run(RestStubApp.java:13)
        at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:43)
        at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:87)
        at io.dropwizard.cli.Cli.run(Cli.java:78)
        at io.dropwizard.Application.run(Application.java:93)
        at com.automationrhapsody.reststub.RestStubApp.main(RestStubApp.java:16)

除了javax.xml.ws:jaxws-api之外,还有另外一个(较新的)库可以编译:

compile group: 'org.jboss.spec.javax.xml.ws', name: 'jboss-jaxws-api_2.3_spec', version: '1.0.0.Final'

但是,这会产生相同的NullPointerException。

这是在Java 8下运行良好的代码。

我们正在寻找一种不涉及--add-modules的解决方案,因为JDK模块已在Java 11中删除,所以我们必须在下个月使用Java 11进行重新访问。标记为重复的答案要么涉及添加JDK,要么模块,或建议无法解决问题的库。

编辑

按如下所示将推荐的jaxws库添加到build.gradle(按照推荐的here)会导致编译错误“包javax.xml.ws不可见”。所以也许我的问题真的只是关于添加此库的问题?我做错了什么或错过了哪一步?

compile group: 'com.sun.xml.ws', name: 'jaxws-ri', version: '2.3.0.2', ext: 'pom'

0 个答案:

没有答案