【问题标题】:JAX-WS wsimport with multiple wsdl files带有多个 wsdl 文件的 JAX-WS wsimport
【发布时间】:2012-06-06 13:04:11
【问题描述】:

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

我在这里做错了吗?

戴夫

【问题讨论】:

    标签: java jax-ws webservice-client


    【解决方案1】:

    我在我当前的项目中使用 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 文件。

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多