4

我们计划将我们的项目从 java 8(当前在 tomcat 7 上运行)迁移到 java 11,因为 rt.jar 文件不再可用,并且 tomcat 启动需要sun.misc包中的类,例如sun.misc.GC. 此外,我们的应用程序使用javax.xml.ws.WebServiceFeature. 我们没有得到任何java.lang.NoClassDefFoundError应用程序无法启动。如何在 java 11 中解决这个依赖关系?

4

2 回答 2

1

Tomcat 7 不适用于 Java 11。您需要将应用程序服务器升级到更新版本。

由于 Tomcat 团队尚未列出其产品的 Java 11 兼容性,因此最好的办法是获取最新的发布版本,看看它是否有效(提示,我上个月做过,9.0.12 有效)。

之后,您还需要查看自己的应用程序是否在 JDK 11 下工作,以及是否可以编译。

您遇到的任何错误,您都需要找到替代方案,通常相同的 API 已经作为中央存储库中的 Maven 包可用。

于 2018-11-23T08:25:22.583 回答
0

对于您关于javax.xml.ws.WebServiceFeature在 Java 11 中哪里可以找到的问题的另一部分......它已从 rt.jar 移出并移至另一个名为Glassfish Metro的项目中。

就个人而言,我发现 Glassfish Metro 页面几乎没有帮助,至少在告诉我如何添加依赖项方面,但我最终想通了。对于 Maven,将以下内容添加到您的 pom 文件中。(2.3.1 版对我有用。看起来最新的是 2.4.3 版。)

<dependency>
    <groupId>org.glassfish.metro</groupId>
    <artifactId>webservices-rt</artifactId>
    <version>2.3.1</version>
</dependency>

其他依赖管理工具的信息可以在

https://mvnrepository.com/artifact/org.glassfish.metro/webservices-rt/2.3.1 https://search.maven.org/artifact/org.glassfish.metro/webservices-rt/2.3.1/jar

于 2019-01-28T23:52:10.387 回答