Java 11软件包javax.xml.soap不存在

Bor*_*ris 7 java jax-ws java-11

我正在尝试使用SOAP创建一条简单的消息:

MessageFactory mf = MessageFactory.newInstance();
SOAPMessage message = mf.createMessage();
Run Code Online (Sandbox Code Playgroud)

当我使用Java 8构建项目时,可以,但是使用Java 11构建项目失败,并出现编译错误:

package javax.xml.soap does not exist
Run Code Online (Sandbox Code Playgroud)

如何解决此问题?

Bor*_*ris 24

从Java 11中删除了JAX-WS

JAX-WS不再与Java 11捆绑在一起。

根据发行说明,Java 11删除了Java EE模块:

java.xml.ws (JAX-WS, plus the related technologies SAAJ and Web Services Metadata) - REMOVED
Run Code Online (Sandbox Code Playgroud)
  • Java 8-确定
  • Java 9-已弃用
  • Java 10-已弃用
  • Java 11-已删除

有关更多信息,请参见JEP 320

您可以通过使用Java EE技术的替代版本来解决此问题。只需添加com.sun.xml.ws:jaxws-ri Maven工件,其中包含您需要的技术:

<dependency>
  <groupId>com.sun.xml.ws</groupId>
  <artifactId>jaxws-ri</artifactId>
  <version>2.3.2</version>
  <type>pom</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)

  • 请注意,上面的`jaxws-ri`依赖项包括很多jar文件,您可能不需要全部。 (3认同)
  • @holmis83,我已经用 Jakarta EE 8 更新了答案,它没有您指出的问题。 (2认同)