【问题标题】:How to create WebService from WSDL with multiple services in it?如何从 WSDL 创建包含多个服务的 WebService?
【发布时间】:2013-01-22 17:18:11
【问题描述】:

我在使用两个服务从 WSDL 创建 Web 服务时遇到了麻烦。它来自带有 Apache CXF 实现的 Eclipse IDE。

当我在 WSDL 中获得一项服务时,我可以从 WSDL 创建 Web 服务和客户端。

Eclipse 仅提供一个选项来在 WSDL2Java 配置时创建服务名称。

请建议我,如何继续?

【问题讨论】:

  • 你想在 WSDL 中有几个 wsdl:sevice 吗?
  • 我已经在 WSDL 中有两个 。我想使用 Apache CXF 从该 WSDL 生成客户端和服务器存根。不知何故,它在 Eclipse 中出现“选择必须是 WSDL”错误。
  • 据我所知,您只能使用 wsdl2java 从 WSDL 生成客户端,而不是服务器端。

标签: java eclipse web-services soap cxf


【解决方案1】:

删除第二个服务,生成客户端,然后删除第一个服务,还原第二个服务,再生成客户端。

在运行时,需要通过服务端点

【讨论】:

    【解决方案2】:

    我可以建议您的最好和最简单的方法是通过 maven 插件生成服务。这个插件也被命名为 wsdl2java 并且可以正常工作。我还尝试过使用 Eclipse 在 Java 类中从 WSDL 创建服务,但它无法正常工作。使用 maven 中的 wsdl2java 插件,您可以更深入地控制创建服务类的过程。 这个Link 可以帮助你做到这一点。它看起来像这样:

    <plugin>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-codegen-plugin</artifactId>
      <version>${cxf.version}</version>
      <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${basedir}/src/main/resources/myService.wsdl</wsdl>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
      </executions>
    </plugin>
    

    作为一个明智的选择:如果您不熟悉 maven,请尝试一下。这比你想象的要容易!并为您节省大量时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      相关资源
      最近更新 更多