wsdl文件使用ant生成webservice代码_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > wsdl文件使用ant生成webservice代码

wsdl文件使用ant生成webservice代码

 2013/8/21 0:48:11  lee123lee123  程序员俱乐部  我要评论(0)
  • 摘要:wsdl2java:参数解释wsdl2java用于根据WSDL生成相应的服务端和客户端代码的生成工具。命令行格式为:WSDL2Java[options]-uri<urlorpath>:AurlorpathtoaWSDL其中常用的options具体如下:-o<path>:指定生成代码的输出路径-a:生成异步模式的代码-s:生成同步模式的代码-p<pkg>:指定代码的package名称-l<languange>:使用的语言(Java/C
  • 标签:Web Service 使用 文件 Webservice 代码 Ant
class="java" name="code">    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%  
发表评论
用户名: 匿名