WebService之CXF框架入门小程序

来源:互联网 发布:淘宝运营工资提成方案 编辑:程序博客网 时间:2024/05/22 07:41

其实CXF的服务创建及发布相当简单,创建方法如下:

  1. 安装JDK1.7或以上(注意要设置环境变量,javac命令必须可用)
  2. 下载CXF,建议去官网下。
  3. 将下载 的CXF解压,并配置环境变量(与JDK的环境变量配置差不多,配置完成后,需要wsdl2java -h的命令可用)
  4. 创建JAVA项目,并将CXF文件中的jar放到项目中,并部署(JAR文件在apache-cxf\lib目录下,并全部COPY项目中就可以了)
  5. 创建接口
package com.ckinghan.cxf.server.service;import javax.jws.WebService;import javax.xml.ws.BindingType;import javax.xml.ws.soap.SOAPBinding;/** * 使用CXF框架,在接口上要使用@WebService注解,注意:CXF的注解是在接口上的。 * @author Ckinghan */@WebService//这里指定创建的是SOAP1.2的,如果不指定,创建的是SOAP1.1的,现在大部分使用的都是1.2的@BindingType(SOAPBinding.SOAP12HTTP_BINDING)public interface WeatherService {    public String getWeather(String cityName);}

6.创建实现类

package com.ckinghan.cxf.server.service.Impl;import com.ckinghan.cxf.server.service.WeatherService;public class WeatherServiceImpl implements WeatherService {    @Override    public String getWeather(String cityName) {        System.out.println("收到来自客户端面的请求:"+cityName);        return "这是一个好天气";    }}

7、创建测试类并发布服务:

package com.ckinghan.cxf.server.test;import org.apache.cxf.interceptor.LoggingInInterceptor;import org.apache.cxf.interceptor.LoggingOutInterceptor;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;import com.ckinghan.cxf.server.service.WeatherService;import com.ckinghan.cxf.server.service.Impl.WeatherServiceImpl;public class CXFTest {    public static void main(String[] args) {        //创建工厂对象        JaxWsServerFactoryBean jaxWsServerFactoryBean = new JaxWsServerFactoryBean();        //设置接口        jaxWsServerFactoryBean.setServiceClass(WeatherService.class);        //设置接口的实现类        jaxWsServerFactoryBean.setServiceBean(new WeatherServiceImpl());        //设置访问地址        jaxWsServerFactoryBean.setAddress("http://127.0.0.1:12306/weather");        //添加拦截器(实际工作中,基本不会在这里加,会加在nginx代理中,以免降低服务器性能)        jaxWsServerFactoryBean.getInInterceptors().add(new LoggingInInterceptor());        jaxWsServerFactoryBean.getOutInterceptors().add(new LoggingOutInterceptor());        //发布SOAP服务        jaxWsServerFactoryBean.create();    }}

8、查看是否发布成功,访问地址:http://127.0.0.1:12306/weather?wsdl

这里写图片描述

9、出现如上图所示的页面,就说明发布成功了。那么现在来创建客户端。先创建项目,将JAR包部署到项目中。
10、在C盘下创建CXF_FILE文件夹
11、打开 cmd命令提示符。输入:cd c:/ 进入C盘要目录
12、输入: cd CXF_FILE 进入CXF_FILE文件下
13、输入 wsdl2java -p com.ckinghan.cxf.client http://127.0.0.1:12306/weather?wsdl 创建客户端代码
14、将生成的客户端代码COPY到新建的客户端项目中
15、创建ClientTest访问服务端测试代码

package com.ckinghan.cfx.test;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import com.ckinghan.cfx.client.WeatherService;public class ClientTest {    public static void main(String[] args) {        //创建代理工厂对象        JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();        //设置访问地址        jaxWsProxyFactoryBean.setAddress("http://127.0.0.1:12306/weather?wsdl");        //设置访问接口        jaxWsProxyFactoryBean.setServiceClass(WeatherService.class);        //获取接口实例        WeatherService create = jaxWsProxyFactoryBean.create(WeatherService.class);        //设置参数并发送请求,获取得返回值        String weather = create.getWeather("深圳");        //输出返回值        System.out.println(weather);    }}

16、出现如下运行结果,说明成功了。
这里写图片描述

这里写图片描述