【发布时间】:2019-05-12 15:09:10
【问题描述】:
我正在从 java 8 迁移到 11,但在启动 springboot 服务器时遇到问题:
嵌套异常是 java.lang.NoClassDefFoundError: javax / jws / WebService。
我在我的 pom.xml 中使用过:
maven-compiler 3.8.0
cxf.version 3.3.0-SNAPSHOT
编译顺利但服务器启动不成功 谢谢
【问题讨论】:
我正在从 java 8 迁移到 11,但在启动 springboot 服务器时遇到问题:
嵌套异常是 java.lang.NoClassDefFoundError: javax / jws / WebService。
我在我的 pom.xml 中使用过:
maven-compiler 3.8.0
cxf.version 3.3.0-SNAPSHOT
编译顺利但服务器启动不成功 谢谢
【问题讨论】:
JAX-WS 是提供javax.jws.WebService 和相关类的库。它作为 Java SE 8 到 10 的一部分提供,但在 Java 11 中被删除。您需要将该库作为外部依赖项获取。
如果你使用 maven,你应该可以在 pom.xml 中添加对 com.sun.xml.ws:jaxws-ri:<current-version> 的依赖:
<dependencies>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-ri</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
【讨论】:
<type>pom</type>,因为它不是存储库中的 jar。
<type>pom</type> 似乎更适合<dependencyManagement> 部分(stackoverflow.com/questions/11778276/…)。我有一个使用这个依赖规范运行的 HelloWorld 示例。通常,Maven 依赖项不需要指定 <type>。
如果 Andrew 的回答不起作用,这会为我解决:
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.3.3</version>
</dependency>
这是 runtime 依赖而不是参考实现 - 请参阅 this question 了解更多信息
【讨论】: