使用 JDK 工具 wsimport 从 .NET 2.0 应用程序生成的 WSDL 生成 Java SOAP Web 服务客户端时出现问题

2022-09-01 01:46:06

我正在尝试使用JDK 6工具为某些SOAP Web服务生成客户端。WSDL 是由 .NET 2.0 应用程序生成的。对于 .NET 3.X 应用程序,它可以正常工作。wsimport

当我跑步时

wsimport -keep -p mypackage http://myservice?wsdl

它显示几个错误消息,如下所示:

[错误]同名的类/接口“mypackage.SomeClass“已经在使用中。使用类自定义来解决此冲突。线??的 http://myservice?wsdl

当我使用Axis 1.4(使用Eclipse WebTools插件)生成Web服务客户端时。

有谁知道为了使用该工具,我可以做些什么?我真的不明白“类定制”是什么。wsimport


答案 1

我不知道这是否曾经得到解决,但我花了一些时间在谷歌上寻找同样问题的解决方案。

我在这里找到了一个修复程序 - https://jax-ws.dev.java.net/issues/show_bug.cgi?id=228

解决方案是运行 wsimport 与 (没有空格)-B-XautoNameResolution


答案 2

对于使用maven阅读本文的任何人,这是将其添加到.pom文件的方法。请注意配置部分中的参数。这在文档中不容易找到。非常感谢艾萨克·斯蒂芬斯在这方面的帮助。

<!-- definition for ERPStandardWork service -->
<execution>
  <id>ERPStandardWorkService</id>
  <goals>
    <goal>wsimport</goal>
  </goals>
  <configuration>
    <!-- this resolves naming conflicts within the wsdl - there are several copies of fault report objects which clash otherwise. -->
    <args>
       <arg>-B-XautoNameResolution</arg>
    </args>
    <wsdlDirectory>${basedir}/src/main/resources/META-INF/wsdl</wsdlDirectory>
    <wsdlFiles>
        <wsdlFile>ERPStandardWork.wsdl</wsdlFile>
    </wsdlFiles>
      <wsdlLocation>${basedir}/src/main/resources/META-INF/wsdl/ERPStandardWork.wsdl
    </wsdlLocation>
    <staleFile>${project.build.directory}/jaxws/ERPStandardWork/.staleFlag
    </staleFile>
  </configuration>
</execution>

推荐