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
命令,就可以把该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接口样例程序
版权声明
本站文章、图片、视频等(除转载外),均采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0),转载请注明出处、非商业性使用、并且以相同协议共享。
© 空空博客,本文链接:https://www.yeetrack.com/?p=510
近期评论