您的位置:首页 > 运维架构 > Apache

Apache cxf 测试WebService接口

2013-09-28 00:00 399 查看
apache cxf是流行的编写webservice的工具,我们也可以用它测试webservice接口,apache-cxf工具带有wsdl2java这个命令 行下的工具,我们可以用它将webservice接口导出本地类,然后再调用测试。下面是个简单的例子。 一个查询电话号码归属地的webservice接口
http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl,下载apache-cxf包,wsdl2java工具在其bin目录下,我们执行
wsdl2java -client http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl[/code]命令,就可以把该webservice接口导出,生成本地类,将生成的代码包复制到我们的工程代码中。 编写我们的测试代码:
package com.yeetrack.cxf;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

import cn.com.webxml.MobileCodeWSSoap;

/**
* @author youthflies
* yeetrack.com
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "使用apache-cxf测试webservice接口" );
//创建工厂类
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
//设置要测试的接口类,MobileCodeWSSoap是由apache-cxf生成的
factory.setServiceClass(MobileCodeWSSoap.class);
//设置webservice地址
factory.setAddress("http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx");
MobileCodeWSSoap mobileCodeWSSoap = (MobileCodeWSSoap) factory.create();

//测试getMobileCodeInfo接口,需要两个参数,第一个为手机号码(下面的号码,  是随便写的),第二个为用户id(留空即可)。可以添加校验条件,如果要编写测试用例,可以利用junit或者testng。
System.out.println(mobileCodeWSSoap.getMobileCodeInfo   ("13876546787", ""));
}
}
运行结果如下图:
使用apache-cxf测试webservice接口
2013-4-29 11:16:22 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://WebXml.com.cn/}MobileCodeWSSoapService from class cn.com.webxml.MobileCodeWSSoap
13876546787:海南 海口 海南移动全球通卡
例子是用maven管理,下面是我的pom.xml文件。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>

<groupId>com.yeetrack</groupId>
<artifactId>cxf</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>cxf</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_2.5_spec</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.5.8</version>
</dependency>
</dependencies>
</project>

apache cxf 编写web service接口样例程序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 代码