1.关于jax-ws web service client的代码生成,可以用JDK自带的wsimport。
我们可以写一个ant文件build.xml
<project default="save-wsdl">
<property name="wsimport-path" value="C:/jdk1.6.0_33/bin/wsimport" />
<property name="wsurl" value="http://localhost:8080/webservice-server/services" />
<target name="wsimport">
<exec executable="${wsimport-path}">
<arg line="-keep -s ./src/main/java -p com.xpen.webservice.client
${wsurl}/MyService?wsdl" />
</exec>
</target>
<target name="save-wsdl">
<property name="wsdlfile" value="src/main/resources/wsdl/MyService.wsdl"/>
<property name="xsdfile" value="src/main/resources/wsdl/MyService.xsd"/>
<get src="${wsurl}/MyService?wsdl" dest="${wsdlfile}"/>
<get src="${wsurl}/MyService?xsd=MyService_schema1.xsd" dest="${xsdfile}"/>
</target>
</project>
如上代码,我们定义了一个wsimport目标,执行它就可以生成web service client java代码了。还有一个save-wsdl目标,是用来保存wsdl以及相关的xsd到本地用的(这个我们下面有用)。
如果只是想在编码时就生成那些自动代码,那以上步骤足够了。但有时候我们不想把这些自动生成的代码check到代码库里,那可以采用maven build的时候再去生成这些代码。
2.我们可以用jaxws-maven-plugin,官网在这里http://jax-ws-commons.java.net/jaxws-maven-plugin/,另外如果eclipse里用这个插件有问题,可以下载另一个m2e插件,https://github.com/trajano/jaxws-maven-connector。
下好以后,pom.xml加入如下代码
<!-- jaxws Plugin -->
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
<configuration>
<packageName>com.xpen.webservice.client</packageName>
<wsdlDirectory>src/main/resources/wsdl</wsdlDirectory>
<wsdlFiles>
<wsdlFile>MyService.wsdl</wsdlFile>
</wsdlFiles>
<bindingDirectory>src/main/resources/wsdl</bindingDirectory>
<bindingFiles>
<bindingFile>MyService.xsd</bindingFile>
</bindingFiles>
</configuration>
</plugin>
OK啦,这样build时代码就自动生成了,生成的代码在target/generated-sources/wsimport下面。然后用eclipse导入existing maven project这些代码就自动加到build path里了。
需要注意的是,JDK6自带jaxb2.1,所以我们这里jaxws-maven-plugin版本也要用2.1,如果用2.2是过不去的,会报 UndeclaredThrowableException: javax.xml.bind.annotation.XmlElementRef.required()错误。
分享到:
相关推荐
maven-jaxws-tools-plugin-1.1.1.final.jar
maven-jaxws-tools-plugin-1.1.1.final-sources.jar
MojoHaus JAX-WS Maven插件这是 。发行确保gpg-agent正在运行。 执行mvn -B release:prepare release:perform 要发布网站,请执行以下操作: cd target/checkoutmvn verify site site:stage scm-publish:publish-scm
4. **创建客户端**:使用`wsimport`工具或Maven的`jaxws-maven-plugin`生成客户端存根类,便于调用服务。 接下来,我们转向RESTful Web服务的创建,这通常借助JAX-RS完成。JAX-RS是Java API for RESTful Web ...
总结起来,Java中的Web Service客户端生成涉及的关键点有:理解WSDL规范,选择合适的工具(如Apache CXF或JAX-WS),正确配置并执行代码生成命令,最后在生成的代码基础上调用Web服务。这极大地简化了与Web服务交互...
客户端可以通过多种方式调用服务器发布的Web服务,例如使用CXF的wsdl2java工具生成客户端代理类,或者直接使用SOAP请求库。以CXF生成客户端代码为例: 1. 通过CXF wsdl2java工具生成客户端代码: ``` mvn cxf-...
为了构建JAX-WS服务,我们需要Maven的JAX-WS插件,如maven-jaxws-plugin或者cxf-codegen-plugin(Apache CXF是JAX-WS的一种实现)。这些插件可以从WSDL文件自动生成服务端和客户端的代码。例如,使用cxf-codegen-...
4. 生成服务端点:使用CXF的插件(如cxf-codegen-plugin)生成服务端点类。 5. 配置CXF:在`src/main/webapp/WEB-INF/web.xml`中配置CXF Servlet。 6. 打包部署:使用Maven的`package`目标打包为WAR文件,然后部署到...
6. **Maven插件**:CXF提供了Maven插件,如`cxf-codegen-plugin`,可以自动生成服务客户端和服务器端代码,简化开发工作。Maven的生命周期也包含了编译、测试、打包等阶段,确保项目构建的一致性。 7. **测试Web...
为了测试服务,我们可以创建一个简单的SOAP客户端,或者使用CXF的`cxf-codegen-plugin`生成客户端代理类。 总的来说,Apache CXF的Code-First开发模式使得Web服务的创建变得更加直观和简单,开发者可以直接在Java...
我们可以通过在pom.xml中配置CXF插件,然后执行`mvn cxf-codegen-plugin:wsdl2java`命令生成客户端代码。 总的来说,【CXF实例一 Maven构建】是一个涵盖了Maven基本用法和CXF服务开发的教程。通过这个实例,开发者...
使用 Maven 的 `archetype` 插件创建一个 CXF Web 服务项目,执行以下命令: ```bash mvn archetype:generate \ -DgroupId=com.example \ -DartifactId=cxf-webservice-simple \ -DarchetypeGroupId=org.apache....
除了`wsdl2java`,CXF框架还包括其他的实用工具,如`cxf-codegen-plugin`,这是一个Maven插件,可以在Maven构建过程中自动执行代码生成。另外,CXF提供了丰富的日志、拦截器、安全和数据绑定等功能,可以帮助开发者...
在命令行或IDE中,使用`mvn archetype:generate`命令来生成一个基于CXF的Maven项目模板。例如: ```bash mvn archetype:generate -DgroupId=...
9. **部署服务**:如果需要在外部服务器上部署,可以使用Maven的`cxf-codegen-plugin`插件生成WAR文件,然后部署到Tomcat或其它Servlet容器中。 通过这个简单的CXF实例,我们能掌握如何使用CXF构建Web服务,理解...
6.使用'jaxws生成运行时JAX-WS类-maven-plugin”,主要用于SOAP Service Automation7。Java多线程概念用于运行带有多个测试数据的单个测试用例[多个浏览器] 8.框架还能够从Excel文件中读取测试数据,功能文件 命令:...
最后,通过Maven的cxf-codegen-plugin插件生成客户端和服务端的Stubs,并运行项目。访问指定的URL(如http://localhost:8080/hello?wsdl),就可以看到服务的WSDL描述。 【标签】"cxf"和"spring"表明这个项目主要...
- 使用CXF的工具(如`cxf-codegen-plugin`)从接口生成服务端点类和服务部署文件(如wsdl)。 - 同时,也可以生成客户端代理类,用于调用服务。 7. **部署和测试服务** - 在Tomcat或其他支持Servlet的服务器上...
本案例展示了如何使用CXF、Maven和IntelliJ IDEA创建和运行一个简单的Web服务。通过理解这些步骤,开发者可以进一步扩展和定制服务,实现更复杂的业务逻辑。在实际项目中,CXF的强大功能和灵活性使其成为构建企业级...