【发布时间】:2019-12-19 09:12:03
【问题描述】:
我正在从 Java 8 升级到 Java 11。
我正在使用 javax.ws 包,所以我必须包含在 Java 11 中删除的依赖项。
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.3.3-b01</version>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>rt</artifactId>
<version>2.3.3-b01</version>
</dependency>
我的 Spring Boot 2.2.2 应用程序可以像 mvn spring-boot:run 一样完美运行。
当使用 java -jar app.jar 运行时,在搜索 com.sun.xml.ws.spi.ProviderImpl 时会给出 ClassNotFoundException
我检查了 rt-version.jar 是否在最终的胖 jar 中。
并检查类在罐子里。
在java -jar 模式下运行时,spring boot 是否会从 ClassLoader 中删除类?
【问题讨论】:
-
你用的是带依赖的jar吗?
-
是的,使用 java -jar 运行 spring boot 应用程序意味着使用 jar 将所有依赖项都包含在内
标签: java spring-boot java-11 java-ws javax.xml