我现在正在阅读 JAX-WS。
我已经使用 Eclipse 和手动成功地构建了 JAX-WS RI 服务。两种方法都使用 apt。在通过 Eclipse 或通过创建一个 war(有或没有 sun-jaxws.xml,取决于所使用的容器)并手动部署它并手动部署它时,JAX-WS 运行时会生成适当的 WSDL自动地。
什么时候使用 wsgen 有用?
我现在正在阅读 JAX-WS。
我已经使用 Eclipse 和手动成功地构建了 JAX-WS RI 服务。两种方法都使用 apt。在通过 Eclipse 或通过创建一个 war(有或没有 sun-jaxws.xml,取决于所使用的容器)并手动部署它并手动部署它时,JAX-WS 运行时会生成适当的 WSDL自动地。
什么时候使用 wsgen 有用?
wsgen 生成响应和请求包装类,并且,正如您所指出的,可以生成 WSDL。某些容器,例如 CXF,根本不需要这些包装类——它们会即时生成它们。或者,您可能已经为自己创建了它们,或者我猜很贴切。
这个链接说明了。
JAX-WS RI 提供了一些 apt 工厂并建议运行 APT 来生成一些代码。
事实上,我认为http://jax-ws.java.net/nonav/2.1.1/docs/jaxws-tools.html#mozTocId344067可能是您原始问题的黄金标准答案。
一点扩展:JAX-WS(标准)和 JAX-WS(参考实现)是两个不同的东西。如果您使用 Java 1.6、Metro、CXF 或其他东西中内置的 RI,您将遇到不同的工具和要求。例如,在 CXF 中,对于 java-first 服务,您根本不需要运行任何工具。
如果您需要将 wsdl 发送给其他人并且您不想启动服务并使用 ?wsdl API,那么从命令行生成 wsdl 可能会有所帮助。
该标准不要求使用任何工具,但该标准允许符合标准的实现使用工具。哇!