3

我正在尝试编写许多 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

我在这里做错了吗?

戴夫

4

1 回答 1

2

我在当前项目中使用 wsimport 为 wcf webservice 导入 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 文件。

希望能帮助到你 :)

于 2012-06-19T04:34:41.537 回答