java - 具有多个 wsdl 文件的 JAX-WS wsimport

标签 java jax-ws webservice-client

我正在尝试编写一些 Web 服务客户端。我看到了许多 wsdl,所有这些都引用了许多常见的数据结构。

我想使用 wsimport 来生成 Web 服务客户端 jar 文件。我正在运行的命令是

wsimport src/*wsdl -d target

首先,这看起来合理吗?

如果我运行 wsimport src/srv1.wsdl -d target,我会得到似乎是生成的一组合理的 java 类。类似地,如果我运行 wsimport src/srv2.wsdl -d target,我也会得到一组合理的类。

但是,如果我运行 wsimport -d targey src/srv1.wsdl src/srv2.wsdl,我会生成大量类,但不会创建服务类 srv2。我希望找到它的包裹在那里,但它是空的。

我正在使用作为 JDK6 一部分的基本 wsimport

我是不是做错了什么?

戴夫

最佳答案

我在当前项目中使用 wsimport 为 wcf web 服务导入 wsdl 文件。 我不知道您是否可以在单个 wsimport 语句中指定要导入的多个 wsdl 文件,但是,您可以使用类似以下的方法单独处理每个 wsdl 文件:

wsimport -d <directory-for-generated-classes> <wsdl-file-location>

这里的-d用于指定要放置编译类的目录(替换为要放置编译类的目录的路径。如果不指定目录则编译类放在当前工作目录中)

如果你也想生成源 java 文件,那么你可以使用类似的东西:

wsimport -d <directory-for-generated-classes> -s <directory-for-generated-source> <wsdl-file-location>

-s用于指定要放置生成的源java文件的目录。

如果你想为特定的 wsdl 文件生成一个包含所有编译类文件的 jar 文件,那么你可以使用类似的东西:

wsimport -d <directory-for-jar-file> -clientjar jarfilename.jar <wsdl-file-location>

这会将 jar 文件放在指定的目录中,但不会保留生成的已编译类文件。所有类文件都打包在 jar 中。

您可以通过发出命令来查看其他选项:

wsimport -help

关于处理多个 wsdl 文件,您可以创建一个批处理文件来处理在每一行中使用单个 wsimport 语句指定的多个 wsdl 文件。

希望对您有所帮助:)

关于java - 具有多个 wsdl 文件的 JAX-WS wsimport,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847734/

相关文章:

java - NavigationDrawer 与 fragment 或 Activity ?另外,请教我正确的 fragment 管理

java - 基于表单的身份验证 : renaming <form-login-page>

java - Jax-ws 无法从具有默认命名空间的操作中获取参数

java - 如何指定应返回 jax-ws 服务结果的语言?

java - 从 Eclipse 创建 Web 服务客户端

java - Kafka - 生产者 - 句柄 "failed to send"

java - 在非构造函数方法中使用 Guice 注入(inject)依赖

java - Java Web 服务客户端超时

java - 由于异常 : XML reader error: WstxUnexpectedCharException: Unexpected character '[' ,JAX-WS 错误无法创建 SOAP 消息

Java Jersey PUT 方法和工作客户端