Spring Boot项目打包JAR后运行报错:创建Bean失败,SOAPException类未找到
问题根因
- 报错的核心原因是运行时缺失
javax.xml.soap.SOAPException类,属于SOAP API依赖缺失问题 - 本地IDEA运行正常是因为IDE运行环境的类路径中存在该类,要么是IDE自带,要么是本地其他依赖传递引入,但你的pom.xml中没有显式声明该依赖,导致打包时不会被打入Fat JAR,部署运行时就找不到类
- 若你部署服务器使用的是Java 9及以上版本,JDK默认已经移除了Java EE相关模块,
javax.xml.soap包不在默认JDK中,就算本地用Java 8正常,高版本JDK运行也会报这个错
解决方案
在pom.xml的<dependencies>节点中添加如下SOAP API及实现依赖:
<!-- SOAP API 核心依赖 --> <dependency> <groupId>javax.xml.soap</groupId> <artifactId>javax.xml.soap-api</artifactId> <version>1.4.0</version> </dependency> <!-- SAAJ 实现依赖 --> <dependency> <groupId>com.sun.xml.messaging.saaj</groupId> <artifactId>saaj-impl</artifactId> <version>1.5.2</version> <scope>runtime</scope> </dependency>
添加后重新执行mvn clean package构建Fat JAR,再部署启动即可解决问题。
建议保持服务器Java运行版本和本地开发版本一致,避免出现其他类兼容或缺失问题。
内容的提问来源于stack exchange,提问作者Amer
相关产品推荐
相关产品推荐

