我正在尝试编写一些 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/