CXF小窥:知道服务器端wsdl地址,如何本地测试服务接口

今天boss给了一篇公司与短信平台公司合作的文档,让我测试一下是否真正常通信,以前项目中webservice都是其他同事在弄,今天头大了,查了一会资料,终于搞定了!现在记录一下

文档上有

WSDL:http://sms.28inter.com:8080/XXX/SmsService.asmx?wsdl

这样一个wsdl地址

现在在eclipse中新建javaProject,引入CXF相关的jar包

下一步是根据wsdl地址获取客户端文件,网上说有两种方式可以实现,一是用cxf提供的wsdl2java.bat,但是我尝试了一下老报目录有问题。算了吧,换下一个方式:使用eclipse实现,操作步骤如下:

右键点击工程,配置启动项,选择工程,浏览main方法,选择wsdl2java,下面两个勾都勾上,在参数里面配置wsdl地址,OK!

这样会在工程根目录得到客户端java文件,将整个包都放在src下,然后编写测试类

import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;


public class Test {
	public static void main(String[] args) throws Exception{
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        org.apache.cxf.endpoint.Client client = dcf.createClient("http://sms.28inter.com:8080/XXX/SmsService.asmx?wsdl");
        
        //Object[] objects=client.invoke("GetBatchSendID"); 
       
        //Object[] objects=client.invoke("GetBlackWords",2); 
        
        Object[] objects=client.invoke("SendEx","F8AB5833BA","tsty2012","测试短信","13558657XXX","","","",22,""); 
        
        System.out.println(objects[0].toString());
        
	}
}

  这是一条发送短信的方法,几秒钟后,收到短信!

posted on 2012-11-08 15:10  cydyhty  阅读(674)  评论(0编辑  收藏  举报

导航