wsdl2java

上一篇文章说 是直接用axis来进行webservice调用,这种方法比较原始,而且容易出错,比如你设置 返回类型如果和wsdl中定义 类型不同 话,就会抛出异常。其实,可以完全屏蔽对底层 操作,而把这些操作留给代理类去实现。代理类一般由开发工具生成,不如JBuilder,ws dl2java 这些工具就可以根据wsdl文件生成对应 java类。这样操作代理类进行调用,就方便多了。这里用wsdl2java 来举例,看看怎样 通过 代理调用webservice接口

1.获得wsdl2java

wsdl2java 是axis2 一个工具,首先到 http://ws .apache.org/axis2/download/1_3/download.cgi 下载得到axis2 开发包。

2.通过 wsdl2java

进入axis2/bin目录,运行wsdl2java -uri xxx.wsdl,这样,就会将wsdl文件转换为对应 java文件。其中包括一个Stub文件和一个CallbackHandler。

3.通过 Stub调用webservice接口

 

public static void callWebService() ...{
        try ...{
            //获得Stub实例
            CopartnerServiceStub s = new CopartnerServiceStub();
            CopartnerServiceStub.CheckUserService srv = new CopartnerServiceStub.CheckUserService();
           
            //设置接口参数
            srv.setUserId(WebServiceTest.USER_ID);
            srv.setCheckCode(WebServiceTest.CHECK_CODE);
           
            //得到返回值
            CheckUserServiceResponse res = s.CheckUserService(srv);
           
            ReturnValue ss = res.getCheckUserServiceResult();
           
            System.out.println(ss.getDescript());
                  } catch (Exception e) ...{
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
    }
ok,这样比自己去操作soap要简单多了,而且不会出现soap异常。

你可能感兴趣的:(java)