我无法理解如何创建Web服务客户端。 故事是我需要打电话给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。
问题
是否有一般指导原则 使用网络服务?自WSDL以来 文件是外部的,它也可以 改变,因此我想 完成这件事可能会很好 自动在Maven(虽然在那里 如果是,那将是其他副作用 WSDL突然改变了......)。
如果wsdl2code是一个不错的选择,那么所有文件是否总是在target-catalouge中创建,所以
执行mvn clean时它们被删除了吗?
还有其他工具可能更合适吗?
更新/修改
通过使用例如JAX-WS wsimport,我得到了我想要的生成文件。
但是,通过在/ target-folder中创建这些,我想在同一个项目中访问它们以实际调用Web服务。这可能吗?
答案 0 :(得分:3)
如果你有java-1.6,你可以(应该)使用jax-ws,它非常容易使用板载java工具。有一个很好的maven插件可以创建一个webservice客户端,可以在没有任何其他依赖项的情况下使用。看看http://jax-ws-commons.java.net/jaxws-maven-plugin/
有关详细演练,请参阅http://blogs.oracle.com/enterprisetechtips/entry/using_jax_ws_with_maven。
答案 1 :(得分:1)
您可以尝试CXF wsdl2java plugin。此外,最好将生成的源存储在单独的源文件夹中以避免混乱。所以最后配置看起来像这样:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.3.0</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>src/main/generated</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>src/main/resources/your-service.wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<id>auto-clean</id>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
<configuration>
<filesets>
<fileset>
<directory>src/main/generated</directory>
<includes>
<include>**/*.java</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/generated</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>