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

本文介绍三种不同的方法来使用Apache CXF工具集中的WSDL2Java工具生成客户端和服务端的Java代码,包括使用Ant脚本和命令行的方式,并提供了详细的参数解释。

4796

被折叠的 条评论
为什么被折叠?



