JAX-WS wsimport 如何处理多个 WSDL 文件

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中的Service类未被创建。我期望在其中找到它的包存在,但是它是空的。

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

我有做错什么吗?

Dave

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文件放置在指定的目录中,但不会保留生成的编译后的class文件。所有的class文件都被打包在jar文件中。

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

wsimport -help

关于处理多个wsdl文件,您可以创建一个批处理文件,在每一行中使用单个wsimport语句指定需要处理的多个wsdl文件。希望这能帮到您 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接