从JDK 1.8升级至JDK 11后遭遇com.sun.xml.internal.ws.spi.ProviderImpl类未找到异常
JDK 1.8升级至JDK 11后javax.xml.ws.WebServiceException异常解决方案
问题根源
JDK 11正式移除了内置的JAX-WS(Java API for XML Web Services)模块,包括com.sun.xml.internal.ws.spi.ProviderImpl这类实现类。而JDK 1.8将这些组件作为JDK核心部分内置,因此升级后项目找不到对应类,抛出ClassNotFoundException及WebServiceException。
解决方案
1. Maven项目处理
在项目的pom.xml中添加JAX-WS的API和运行时依赖:
<dependencies> <!-- JAX-WS API 依赖 --> <dependency> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId> <version>2.3.1</version> </dependency> <!-- JAX-WS 运行时实现 --> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <version>2.3.3</version> <scope>runtime</scope> </dependency> </dependencies>
添加后执行Maven依赖更新,让项目自动引入所需JAR包。
2. 非Maven项目处理
手动下载以下核心JAR包,添加到项目的类路径(Eclipse中右键项目→Build Path→Add External Archives):
- jaxws-api-2.3.1.jar
- jaxws-rt-2.3.3.jar
- 额外依赖包:javax.annotation-api-1.3.2.jar、javax.xml.bind-api-2.3.1.jar、jaxb-runtime-2.3.3.jar、stax-ex-1.8.1.jar、woodstox-core-5.2.1.jar
3. Eclipse配置检查
- 确认项目的JRE系统库已切换为JDK 11:右键项目→Properties→Java Build Path→Libraries,替换原JDK 1.8为JDK 11。
- 若项目中存在
jaxws.properties文件,确保配置的Provider类路径正确:javax.xml.ws.spi.Provider=com.sun.xml.ws.spi.ProviderImpl
内容的提问来源于stack exchange,提问作者Diptish
相关产品推荐
相关产品推荐

