1

我正在使用 Java 为 .NET Web 服务实现客户端。我有一些关于正确做法的问题,还有一个我需要解决的问题。

  1. 我正在使用 maven 和 wsdl2java 插件,它当前设置为从 Web 服务 url 获取 wsdl xml,尽管我已经看到大多数示例在项目源中使用 wsdl 的本地副本。有偏好吗?我还发现您需要再次指定 wsdl 位置来实例化生成的服务类,有没有办法避免这种情况?
  2. 实例化服务对象时指定服务URL的方法是什么?目前生成的代码会自动使用 wsdl 中指定的 URL。我希望能够根据运行时变量更改地址。
  3. 我想设置一些配置,例如 WS-ReliableMessaging 为 true。这样做的最佳做法是什么?

这是POM中的插件:

<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>${basedir}/target/generated/src/main/java</sourceRoot>
        <wsdlOptions>
          <wsdlOption>
            <wsdl>http://ServerNameA/FooService.svc?wsdl</wsdl>
            <serviceName>FooService</serviceName>
          </wsdlOption>
        </wsdlOptions>
      </configuration>
      <goals>
        <goal>wsdl2java</goal>
      </goals>
    </execution>
  </executions>
</plugin>

这是我目前实例化服务对象的方式:

FooService fooService = new FooService(new URL("http://ServerNameA/FooService.svc?wsdl"));
IFooService service = fooService.getWSHttpBindingIFooService();
service.getData(); // Calling one of the ports/service methods
4

0 回答 0