我正在尝试使用 Java 11 中的 wsimport 工具。
我从 Eclipse EE4J 的 Metro 项目获得了 jax-ws 的开源版本,地址为 https://github.com/eclipse-ee4j/metro-jax-ws 。我尝试过版本 2.3.0 和 2.3.1。
运行 wsimport 会导致包含的类 WSDLModeler ,其中包括此导入:
import javax.jws.WebParam.Mode;
这不包含在 jaxws-ri 的 jar 文件中,导致:
[exec] parsing WSDL...
[exec] Exception in thread "main" java.lang.NoClassDefFoundError: javax/jws/WebParam$Mode
[exec] at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.getParameterOrder(WSDLModeler.java:2585)
[exec] at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.processLiteralSOAPOperation(WSDLModeler.java:779)
...
Jakarta 项目中有一个 WebParam 的实现 jws-api (Jakarta Web 服务元数据项目)——但使用新的包名称 jakarta.jws.WebParam
。
问题
- 我应该使用 jax-ws 的更新替代品吗?
- 或者是否有来自其他地方的 javax.jws.WebParam 实现我应该包含在类路径中?
最佳答案
如果其他人遇到同样的问题:
- Jakarta 项目中的软件包名称最近发生了更改,其他项目尚未跟上。
- Jakarta 项目的早期版本中,包名称仍为
javax.jws
。 - 兼容版本 (1.1.1) 的二进制文件和源代码可在 repo.eclipse.org here 上获取。 。
关于java - Java 11 中的 JAX-WS 和缺少 WebParam$Mode 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60101542/