Spring Boot 2.2 ClassNotFoundException com.sun.xml.ws.spi.ProviderImpl使用胖子从Java 8升级到11]]

问题描述 投票:0回答:1

我正在从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中。

enter image description here

Spring Boot是否在java -jar模式下运行时从ClassLoader中删除类?

我正在从Java 8升级到Java11。我正在使用javax.ws软件包,因此我必须包括Java 11中删除的依赖项。 [

真正的问题是从Java9开始的行为改变。现在,ForkJoinPools没有主线程类加载器,而是具有系统类加载器。
但是Java 11在ForkJoinPool构造函数中允许更多参数,因此我们可以使用所需的类加载器创建自己的池。解决方案发布在另一个答案中。 https://stackoverflow.com/a/59444016/878015

java spring-boot java-11 java-ws javax.xml
1个回答
2
投票
© www.soinside.com 2019 - 2024. All rights reserved.