细节:
- Maven - 3.3.1 带有 jaxws-maven-plugin 版本 2.3 和我无法粘贴到此处的 wsdlUrl 上的目标 wsimport。
- Java 1.7
Maven pom 内容示例:
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>wsdla-exec-1</id>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<packageName>com.yourcompany.package</packageName>
<target>2.1</target>
<verbose>true</verbose>
<!-- Fix naming resolution due to ChangeOrderResponse duplicate stanza -->
<args>
<arg>-B-XautoNameResolution</arg>
</args>
<wsdlDirectory>src/main/resources</wsdlDirectory>
<wsdlFiles>
<wsdlFiles>service1.wsdl</wsdlFiles>
</wsdlFiles>
<wsdlLocation>/*</wsdlLocation>
<sourceDestDir>src/main/java</sourceDestDir>
</configuration>
</execution>
<execution>
<id>wsdla-exec-2</id>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<packageName>com.yourcompany.package</packageName>
<target>2.1</target>
<verbose>true</verbose>
<!-- Fix naming resolution due to ChangeOrderResponse duplicate stanza -->
<args>
<arg>-B-XautoNameResolution</arg>
</args>
<wsdlDirectory>src/main/resources</wsdlDirectory>
<wsdlFiles>
<wsdlFile>service2.wsdl</wsdlFile>
</wsdlFiles>
<wsdlLocation>/*</wsdlLocation>
<sourceDestDir>src/main/java</sourceDestDir>
</configuration>
</execution>
</executions>
</plugin>
描述:
我已经在 Mule 中从 wsdl 生成客户端代码已经有一段时间了,它一直是相当直接且高效的,但现在我遇到了一个障碍,我可能会在这里找到正确方向的指针。
基本上,在从 wsdl 生成的代码中,有一个与容器类同名的嵌套类,这在我使用这个 wsdl 的项目中产生了红色。
我知道的:
我可以手动更改代码和 viola,或者更好的是我可以更改 wsimport 以使用静态文件(从 url 复制 - 包括所有 xsd)并更改这些文件。然而,两者似乎都错了!
有没有办法可以操纵代码生成过程,或者我应该要求供应商进行更改?你觉得呢?你有没有什么想法?
非常感谢,非常感谢任何输入。