迁移到 Java 11 时如何替换 JAX-WS

Mar*_*ato 5 java jax-ws java-11

我们开发的 Java 应用程序仍然需要 Java 8 才能运行,并且计划支持 Java 11。为此,我们必须找到与已删除的 xml 和 Web 服务相关的类的替代品(请参阅JEP 320)。我们下载了所需的所有 jar,但是当我们尝试连接到 Web 服务时,出现以下错误:

MASM0004: No <tubelines> section found in the default [ jaxws-tubes-default.xml ] configuration file
Run Code Online (Sandbox Code Playgroud)

比较 Java 8 中的 jaxws-tubes-default.xml 文件和我们收集的 jar 文件,我们发现它们的内容几乎相同,除了包名称略有不同。

据我们所知,发生这种情况是因为文件解组器将 xml 内容读取到类的错误属性中com.sun.xml.ws.runtime.config.MetroConfig。从 xml 读取的对象Tubelines未设置在tubelines属性上。相反,它是在any属性上设置的。

深入调试代码,我们可以看到在 Java 8 上该tubelines属性与命名空间“http://java.sun.com/xml/ns/metro/config”相关联,但在 Java 11 上则不然。

我们无法进行更深入的挖掘,也无法在网络上找到任何相关信息。

有谁知道可以帮助我们按预期解析文件吗?

编辑: 有人建议我的问题与重复,但事实并非如此。链接的问题解释了 Java 11 带来的变化。我的问题是关于我在执行这些步骤时发现的问题。我们遇到的问题并未在该问题中得到解决。