wsdl文件使用ant生成webservice代码
wsdl2java:参数解释 wsdl2java 用于根据WSDL生成相应的服务端和客户端代码的生成工具。 命令行格式为:WSDL2Java [options] -uri <url or path> : A url or path to a WSDL 其中常用的options具体如下: -o <path> : 指定生成代码的输出路径 -a : 生成异步模式的代码 -s : 生成同步模式的代码 -p <pkg> : 指定代码的package名称 -l <languange> : 使用的语言(Java/C) 默认是java -t : 为代码生成测试用例 -ss : 生成服务端代码 默认不生成 -sd : 生成服务描述文件 services.xml,仅与-ss一同使用 -d <databinding> : 指定databingding,例如,adb,xmlbean,jibx,jaxme and jaxbri -g : 生成服务端和客户端的代码 -pn <port_name> : 当WSDL中有多个port时,指定其中一个port -sn <serv_name> : 选择WSDL中的一个service -u : 展开data-binding的类 -r <path> : 为代码生成指定一个repository -ssi : 为服务端实现代码生成接口类 -S : 为生成的源码指定存储路径 -R : 为生成的resources指定存储路径 --noBuildXML : 输出中不生成build.xml文件 --noWSDL : 在resources目录中不生成WSDL文件 --noMessageReceiver : 不生成MessageReceiver类 -scn : 用已有的代码代替skeletons wsdl文件使用ant生成webservice代码 使用ant工具 将wsdl文件生成webservice代码: 文件目录结构 ├─apache-ant-1.9.0 ├─axis2-1.5.1 ├─axis2-1.6.2 ├─jre6 └─wsdl2java 在wsdl2java文件夹下创建如下文件 wsdl2java.cmd wsdl2java.xml [wsdl2java][hide].reg [wsdl2java][show].reg 文件内容:【[wsdl2java][hide].reg】 Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT.wsdl] [-HKEY_CLASSES_ROOTwsdlfile] 【[wsdl2java][show].reg】 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT.wsdl] @="wsdlfile" [HKEY_CLASSES_ROOTwsdlfileshellwsdl2java4all] @="wsdl2java4all" [HKEY_CLASSES_ROOTwsdlfileshellwsdl2java4allcommand] @="cmd.exe /s /c D:/test/wsdl2java/wsdl2java.cmd %1 D:/test/wsdl2java codegen.all" [HKEY_CLASSES_ROOTwsdlfileshellwsdl2java4client] @="wsdl2java4client" [HKEY_CLASSES_ROOTwsdlfileshellwsdl2java4clientcommand] @="cmd.exe /s /c D:/test/wsdl2java/wsdl2java.cmd %1 D:/test/wsdl2java codegen.client" 【wsdl2java.xml】 <?xml version="1.0" encoding="UTF-8"?> <project name="CodegenExample" default="codegen.all" basedir="."> <property environment="env" /> <property name="axis2.home" value="${env.AXIS2_HOME}" /> <path id="codegen.class.path"> <pathelement path="${java.class.path}"/> <fileset dir="${axis2.home}"> <include name="lib/**.jar"/> </fileset> </path> <taskdef name="codegen" classname="org.apache.axis2.tool.ant.AntCodegenTask" classpathref="codegen.class.path" /> <target name="codegen.all"> <codegen wsdlfilename="${codegen.wsdl}" output="${codegen.dest}" serverside="true" serversideinterface="true" generateservicexml="true" generateAllClasses="true"> </codegen> <ant antfile="build.xml" dir="${codegen.dest}" /> <copy todir="${codegen.dest}/.."> <fileset dir="${codegen.dest}/build/lib" includes="**/*.jar"/> </copy> <!--delete dir="${codegen.dest}" /--> </target> <target name="codegen.client"> <codegen wsdlfilename="${codegen.wsdl}" output="${codegen.dest}" unwrap="true"> </codegen> <replace dir="${codegen.dest}" defaultexcludes="yes" encoding="UTF-8"> <include name="**/*.java"/> <replacefilter token="_service.addOperation(__operation)" value="_service.addOperation(__operation);__operation.setSoapAction("")"/> <replacefilter token="_operationClient.getOptions().setAction(" value="//_operationClient.getOptions().setAction(" /> </replace> <ant antfile="build.xml" dir="${codegen.dest}" /> <copy todir="${codegen.dest}/.."> <fileset dir="${codegen.dest}/build/lib" includes="**/*.jar"/> </copy> <delete dir="${codegen.dest}" /> </target> </project> 【wsdl2java.cmd】 set ANT_HOME=%2..apache-ant-1.9.0 set AXIS2_HOME=%2..axis2-1.5.1 set PATH=%ANT_HOME%bin;%AXIS2_HOME%bin;%PATH% set PARAM=%1 ant %3 -f %2wsdl2java.xml -Dcodegen.wsdl=%PARAM% -Dcodegen.dest=%PARAM:~0,-5%