`
xiaofengtoo
  • 浏览: 484095 次
  • 性别: Icon_minigender_1
  • 来自: xiamen
社区版块
存档分类
最新评论

wsdl2Java 3种实现方式

 
阅读更多

cxf wsdl2Java 实现

一、ant 实现

<?xml version="1.0"?>
<project name="cxf build" basedir=".">
	
	<property name="cxf.home" location ="D:/developSoft/apache-cxf-2.3.3"/>
	<property name="src.dir" value="${basedir}/src" />
	<property name="build-gen" location="${basedir}/gen"/>
	<property name="wsdl-name" value="hello.wsdl"/>
	<property name="wsdl-path" value="${src.dir}/${wsdl-name}"/>

	<path id="cxf.classpath">
		<!-- 一定要编译class -->
		<pathelement location="${basedir}/WebRoot/WEB-INF/classes"/>	
		<fileset dir="${cxf.home}/lib">
			<include name="*.jar"/>
		</fileset>
	</path>
	<target name="cxfWSDLToJava">
		<echo message="Running WSDL2Java task"/>
		<delete quiet="true" dir="${build-gen}"/>
		<mkdir dir="${build-gen}"/>
		<java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
			<arg value="-client"/>
			<arg value="-d"/>
			<arg value="${build-gen}/src"/>
			<arg value="${wsdl-path}"/>
			<classpath>
				<path refid="cxf.classpath"/>
			</classpath>
		</java>
	</target>
</project>
 

二、另一种ant 实现

 

<?xml version="1.0"?>
<project name="cxf" basedir="." default="usage">
	<property name="webroot.dir" value="${basedir}/WebRoot/WEB-INF/classes" />
	<!-- webservice接口 -->
	<property name="target.class" value="com.hq.cxf.HelloWorld" />
	<property name="wsdl.name" value="hello.wsdl" />
	<property name="src.dir" value="src" />
	<property name="client.dir" value="client" />
	<property name="server.dir" value="server" />
	<property name="compile.dir" value="${webroot.dir}" />
		
	<target name="wsdl2javaClient">
		<echo message="生成java client文件" />
		<mkdir dir="${client.dir}" />
		<exec dir="." executable="cmd.exe">
			<arg line="/c wsdl2java" />
			<!-- 生成的java所存目录 -->
			<arg line="-d ${client.dir}" />
			<!-- wsdl文件所在路径 -->
			<arg line="-client src\*.wsdl" />
		</exec>
	</target>
</project>
 

三、dos 实现

@echo
d:
@rem cxf 安装路径\bin 目录下
set wsdl2path=D:/developSoft/apache-cxf-2.3.3/bin


cd %wsdl2path%

:::set savepath=
set wsdlurl=http://localhost:8080/cxf.server/IHelloWorld?wsdl
:::-p  指定其wsdl的命名空间,也就是要生成代码的包名:
:::-d  指定要产生代码所在目录
:::-client 生成客户端测试web service的代码
:::-server 生成服务器启动web  service的代码
:::-impl 生成web service的实现代码
:::-ant  生成build.xml文件
:::-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline,
:::implementation object, and an Ant build.xml file. 

call wsdl2java.bat %wsdlurl%
@echo 生成完毕
exit
 

 

第2种与第3种 实现方式需要配置CXF的环境变量

 

参数说明:

 

Option Interpretation
-? ,-h ,-help 显示此实用程序和退出的联机帮助。
-fe frontend-name 指定的前端。 默认为JAXWS。 目前支持仅JAXWS前端和“jaxws21”前端生成JAX - WS 2.1兼容的代码。
-db databinding-name 指定的绑定。 默认是JAXB。 目前支持JAXB,XMLBeans的,SDO(SDO的静态和动态SDO),和JiBX。
-wv wsdl-version 指定WSDL版本,默认是WSDL1.1。 目前suppports只有WSDL1.1版本。
-p [ wsdl-namespace= ] PackageName 指定零或更多,包名使用生成的代码。 还可以指定WSDL命名空间包名映射。
-sn service-name WSDL服务名称使用生成的代码。
-b binding-name 指定JAXWS或JAXB绑定文件或XMLBeans的上下文文件。 使用多个- B标志来指定多个条目。
-catalog catalog-file-name 指定目录的文件映射导入的WSDL /架构
-d output-directory 指定生成的代码文件被写入到其中的目录。
-compile 编译生成的Java文件。
-classdir compile-class-dir 指定编译的类文件被写入到其中的目录。
-client 生成客户端主线出发点代码。
-server 生成服务器主线出发点代码。
-impl 生成出发点代码为实施对象。
-all 生成所有的出发点代码:类型,服务代理,服务接口,服务器主线,客户端的主线,实施对象,和Ant build.xml文件。
-ant 指定生成 Ant build.xml脚本。
-autoNameResolution 自动解决,而无需使用绑定自定义的命名冲突。
-defaultValues=[DefaultValueProvider impl] 指定IMPL和客户端生成的默认值。 您也可以提供一个自定义的默认值供​​应商。 默认提供程序是RandomValueProvider
-nexclude schema-namespace [=java-packagename] 生成代码时,忽略指定的WSDL架构命名空间。 这个选项可以多次指定。 此外,还可以指定排除的命名空间(S)中所述的类型所使用的Java包名。
-exsh (true/false) 启用或禁用隐SOAP标头处理(即在WSDL中定义的SOAP标头:约束力,但不WSDL:portType的部分),默认值是false。
-dns (true/false) 启用或禁用加载默认命名空间的包的名称映射。 默认是真实的, http://www.w3.org/2005/08/addressing=org.apache.cxf.ws.addressing 命名空间封装映射将启用。
-dex (true/false) 启用或禁用加载默认不包括命名空间映射。 默认值是true。
-validate 启用验证WSDL生成的代码之前。
-keep 指定的代码发生器不会覆盖任何预先存在的文件。 您将负责解决由此产生的任何编译问题的。
-wsdlLocation wsdlLocation 指定@ WebServiceClient注释的wsdlLocation财产的价值。
-xjc<xjc args> 指定一个逗号分隔的列表参数 ,直接传递到XJC处理器时使用的JAXB绑定。 使用XJC - X 可提供XJC的插件列表。
-noAddressBinding 与CXF 2.0的兼容性,这个标志指示的代码生成器来生成旧CXF的专有的WS -寻址类型,而不是对JAX - WS 2.1兼容WS - Addressing的类型。
-v 显示该工具的版本号。
-verbose 显示在代码生成过程中的意见。
-quiet 禁止在代码生成过程中的意见。
-useFQCNForFaultSerialVersionUID 启用故障异常的基础上的hashCode()生成序列版本UID
异常的完全限定类名
wsdlurl 在生成的代码使用的WSDL文件的路径和名称。

作为最后一个参数,您必须指定WSDL文档的绝对或相对路径。

 

官方文档: http://cxf.apache.org/docs/wsdl-to-java.html

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics