`
xpenxpen
  • 浏览: 725146 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用wsimport或jaxws-maven-plugin生成web service代码

 
阅读更多
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.jar

    maven-jaxws-tools-plugin-1.1.1.final-sources.jar

    maven-jaxws-tools-plugin-1.1.1.final-sources.jar

    jaxws-maven-插件

    MojoHaus JAX-WS Maven插件这是 。发行确保gpg-agent正在运行。 执行mvn -B release:prepare release:perform 要发布网站,请执行以下操作: cd target/checkoutmvn verify site site:stage scm-publish:publish-scm

    jax-ws jax-rs 分别创建soap和restful类型的webservice

    4. **创建客户端**:使用`wsimport`工具或Maven的`jaxws-maven-plugin`生成客户端存根类,便于调用服务。 接下来,我们转向RESTful Web服务的创建,这通常借助JAX-RS完成。JAX-RS是Java API for RESTful Web ...

    java中webService生成客户端

    总结起来,Java中的Web Service客户端生成涉及的关键点有:理解WSDL规范,选择合适的工具(如Apache CXF或JAX-WS),正确配置并执行代码生成命令,最后在生成的代码基础上调用Web服务。这极大地简化了与Web服务交互...

    CXF 框架实战代码---服务器端发布WebServices接口

    客户端可以通过多种方式调用服务器发布的Web服务,例如使用CXF的wsdl2java工具生成客户端代理类,或者直接使用SOAP请求库。以CXF生成客户端代码为例: 1. 通过CXF wsdl2java工具生成客户端代码: ``` mvn cxf-...

    mvnjaxws:准系统jax-ws maven项目

    为了构建JAX-WS服务,我们需要Maven的JAX-WS插件,如maven-jaxws-plugin或者cxf-codegen-plugin(Apache CXF是JAX-WS的一种实现)。这些插件可以从WSDL文件自动生成服务端和客户端的代码。例如,使用cxf-codegen-...

    maven cxf 项目搭建,可以直接访问

    4. 生成服务端点:使用CXF的插件(如cxf-codegen-plugin)生成服务端点类。 5. 配置CXF:在`src/main/webapp/WEB-INF/web.xml`中配置CXF Servlet。 6. 打包部署:使用Maven的`package`目标打包为WAR文件,然后部署到...

    cxf spring maven 实例

    6. **Maven插件**:CXF提供了Maven插件,如`cxf-codegen-plugin`,可以自动生成服务客户端和服务器端代码,简化开发工作。Maven的生命周期也包含了编译、测试、打包等阶段,确保项目构建的一致性。 7. **测试Web...

    Apache CXF开发Web Service 理解CXF Frontends之Code-First

    为了测试服务,我们可以创建一个简单的SOAP客户端,或者使用CXF的`cxf-codegen-plugin`生成客户端代理类。 总的来说,Apache CXF的Code-First开发模式使得Web服务的创建变得更加直观和简单,开发者可以直接在Java...

    CXF实例一 Maven构建

    我们可以通过在pom.xml中配置CXF插件,然后执行`mvn cxf-codegen-plugin:wsdl2java`命令生成客户端代码。 总的来说,【CXF实例一 Maven构建】是一个涵盖了Maven基本用法和CXF服务开发的教程。通过这个实例,开发者...

    cxf-webservice 最简单的

    使用 Maven 的 `archetype` 插件创建一个 CXF Web 服务项目,执行以下命令: ```bash mvn archetype:generate \ -DgroupId=com.example \ -DartifactId=cxf-webservice-simple \ -DarchetypeGroupId=org.apache....

    CXF框架工具使用

    除了`wsdl2java`,CXF框架还包括其他的实用工具,如`cxf-codegen-plugin`,这是一个Maven插件,可以在Maven构建过程中自动执行代码生成。另外,CXF提供了丰富的日志、拦截器、安全和数据绑定等功能,可以帮助开发者...

    CXF的helloworld实现

    在命令行或IDE中,使用`mvn archetype:generate`命令来生成一个基于CXF的Maven项目模板。例如: ```bash mvn archetype:generate -DgroupId=...

    CXF简单实例源码

    9. **部署服务**:如果需要在外部服务器上部署,可以使用Maven的`cxf-codegen-plugin`插件生成WAR文件,然后部署到Tomcat或其它Servlet容器中。 通过这个简单的CXF实例,我们能掌握如何使用CXF构建Web服务,理解...

    Serenity-BDD-Framework-Skelton

    6.使用'jaxws生成运行时JAX-WS类-maven-plugin”,主要用于SOAP Service Automation7。Java多线程概念用于运行带有多个测试数据的单个测试用例[多个浏览器] 8.框架还能够从Excel文件中读取测试数据,功能文件 命令:...

    基于maven的cxf+spring简单demo

    最后,通过Maven的cxf-codegen-plugin插件生成客户端和服务端的Stubs,并运行项目。访问指定的URL(如http://localhost:8080/hello?wsdl),就可以看到服务的WSDL描述。 【标签】"cxf"和"spring"表明这个项目主要...

    CXF学习-环境搭建

    - 使用CXF的工具(如`cxf-codegen-plugin`)从接口生成服务端点类和服务部署文件(如wsdl)。 - 同时,也可以生成客户端代理类,用于调用服务。 7. **部署和测试服务** - 在Tomcat或其他支持Servlet的服务器上...

    关于CXF的用例

    本案例展示了如何使用CXF、Maven和IntelliJ IDEA创建和运行一个简单的Web服务。通过理解这些步骤,开发者可以进一步扩展和定制服务,实现更复杂的业务逻辑。在实际项目中,CXF的强大功能和灵活性使其成为构建企业级...

Global site tag (gtag.js) - Google Analytics