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>

本文介绍如何使用Apache CXF工具通过Ant脚本实现Java类与WSDL文件之间的相互转换,包括从Java生成WSDL及从WSDL生成Java客户端代码的过程。

279

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



