webservice自说自话-通过已经生成的wsdl文件生成java代码的工具

package com.tools;

import java.util.Map;

import javax.wsdl.Definition;

import org.apache.axis2.description.AxisService;
import org.apache.axis2.tool.codegen.WSDL2JavaGenerator;
import org.apache.axis2.tool.codegen.eclipse.util.WSDLPropertyReader;
import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
import org.apache.axis2.wsdl.codegen.CodeGenerationEngine;

/**
 * 根据WSDL文件生成JAVA代码.<br>
 * 需要使用是否请自己写个Main函数.
 */
public class WsdlCodingTools
{

    /**
     * 生成JAVA代码.
     * @throws Exception 发生异常.
     * @see [类、类#方法、类#成员]
     */
    public static void coding()
        throws Exception //NOPMD
    {
        // wsdl--wsdl本地或者网络路径
        String wsdl = "mmm";
        // 是否同步
        boolean isSync = true;
        // 是否服务端

        boolean isServerSide = false;
        // 输出路径--直到工程名就可以了
        String outLocationUrl = "mmm";
        // package
        String packageName = "com.client";

        WSDL2JavaGenerator generator = new WSDL2JavaGenerator();
        AxisService axisService = generator.getAxisService(wsdl);

        Map<?, ?> fillOptionMap =
            generator.fillOptionMap(false,
                isSync,
                isServerSide,
                isServerSide,
                true,
                false,
                null,
                null,
                "adb",
                wsdl,
                packageName,
                "java",
                outLocationUrl,
                null,
                true);

        CodeGenConfiguration codegenConfig = new CodeGenConfiguration(fillOptionMap);
        codegenConfig.addAxisService(axisService);

        //set the wsdl definision for codegen config for skeleton generarion.
        WSDLPropertyReader reader = new WSDLPropertyReader();
        reader.readWSDL(wsdl);
        Definition wsdlDefinition = reader.getWsdlDefinition();
        codegenConfig.setWsdlDefinition(wsdlDefinition);

        //set the baseURI
        codegenConfig.setBaseURI(generator.getBaseUri(wsdl));

        new CodeGenerationEngine(codegenConfig).generate();
    }

    public static void main(String[] args)
    {
        try
        {
            WsdlCodingTools.coding();
        }
        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

 

你可能感兴趣的:(java,apache,eclipse,webservice)