WebService之CXF框架入门小程序

其实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

WebService之CXF框架入门小程序_第1张图片

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、出现如下运行结果,说明成功了。
WebService之CXF框架入门小程序_第2张图片

WebService之CXF框架入门小程序_第3张图片

你可能感兴趣的:(webservice)