我无法理解如何制作 Web 服务客户端。故事是我需要调用一个网络服务。据我了解,我需要以某种方式使用 Web 服务来获取正确的 Web 服务类。
我已经研究了很多方法来做到这一点。例如,我尝试使用脚本使用它们,然后只导入类。
但是,我的一位同事建议我尝试使用 Maven-plugin wsdl2code,因为我们已经使用了 Maven-2 。这样做可行,但在我看来会创建很多垃圾文件。我在 pom.xml 文件中添加了以下内容:
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<goals>
<goal>wsdl2code</goal>
</goals>
<configuration>
<packageName>ws.client.test</packageName>
<wsdlFile>http://localhost:8088/test?WSDL</wsdlFile>
<databindingName>xmlbeans</databindingName>
<outputDirectory>target/ws/test</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
这成功地创建了文件,但是如上所述,还有很多垃圾文件(xmlsoap/schemas/soap/encoding/...)或者至少比其他 WSDLconsume 更多的无用文件(如我所见)我试过。
问题
是否有如何使用 Web 服务的一般准则?由于 WSDL 文件是外部的,因此它也可能会发生变化,因此我认为在 Maven 中自动完成这可能会很好(尽管如果 WSDL 突然发生变化会有其他副作用......)。
如果 wsdl2code 是一个不错的选择,是否应该始终在目标目录中创建所有文件,以便
在执行 mvn clean 时将它们删除)?还有其他更适合的工具吗?
更新/编辑
通过使用例如 JAX-WS wsimport 我得到了我想要的生成文件。但是,通过在 /target-folder 中创建这些,我想在同一个项目中访问它们以实际调用 Web 服务。这可能吗?