cxf java 与 wsdl 互换生成代码
一、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="cxfJavaToWSDL"> <echo message="Running Java2WSDL task"/> <delete quiet="true" dir="${build-gen}"/> <delete quiet="true" file="${wsdl-path}"/> <mkdir dir="${build-gen}"/> <java classname="org.apache.cxf.tools.java2ws.JavaToWS" fork="true"> <arg value="-o"/> <arg value="hello.wsdl"/> <arg value="-d"/> <arg value="${build-gen}"/> <arg value="-servicename"/> <arg value="HelloWorld"/> <arg value="-wsdl"/> <arg value="com.hq.service.HelloWorld"/> <classpath> <path refid="cxf.classpath"/> </classpath> </java> <!-- copy资源文件 --> <move todir="${src.dir}" preservelastmodified="true"> <fileset dir="${build-gen}"> <include name="**/*.wsdl" /> </fileset> </move> </target> <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 实现(基于dos命令)
<?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="usage"> <echo message="java2wsdl -->java文件生成wsdl文件,java2wsdl -Ddir=com/starit/cxf/java2wsdl -Dsrc=com.starit.cxf.java2wsdl.Hello" /> <echo message="wsdl2javaClient -->java文件生成client,java2wsdl -Ddir=com/starit/cxf/java2wsdl -Dwsdl=hello.wsdl" /> </target> <target name="java2wsdl"> <echo message="生成wsdl文件" /> <exec dir="${compile.dir}" executable="cmd.exe"> <arg line="/c java2ws" /> <arg line="-o ${wsdl.name} -wsdl ${target.class}" /> </exec> <!-- copy资源文件 --> <move todir="${src.dir}" preservelastmodified="true"> <fileset dir="${compile.dir}"> <include name="**/*.wsdl" /> </fileset> </move> </target> <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>