CXF入门教程(一)

 

CXF 简介

 

        Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。目前它仍只是 Apache 的一个孵化项目。

 

        Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成。

入门实例

【环境配置】

下载apache-cxf-3.0.0版本

CXF入门教程(一)_第1张图片

环境变量配置

CXF_HOME= D:\Program Files\apache-cxf-3.0.0
Path =    %CXF_HOME%\bin;
CLASSPATH=%CXF_HOME%\lib\cxf-manifest.jar

【创建CXF工程流程】

第一步:使用Eclipse创建java工程(JDK版本为1.7)

第二步:将CXF中lib文件夹中所有jar包导入工程

第三步:创建服务接口和服务实现类

【服务端工程截图】

CXF入门教程(一)_第2张图片

【IHelloWord.java】

package test.cxf.service;

import javax.jws.WebService;

@WebService
public interface IHelloWord {
	public String say(String name);
}

 

HelloWordImpl.java】

 

package test.cxf.service.impl;

import test.cxf.service.IHelloWord;

public class HelloWorldImpl implements IHelloWord {

	@Override
	public String say(String name) {
		return "你好," + name;
	}
}

 

HelloServer.java】

 

package test.cxf.server;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
import test.cxf.service.IHelloWord;
import test.cxf.service.impl.HelloWorldImpl;
/**
 * 服务端
 * @author John
 *
 */
public class HelloServer {
	public static void main(String[] args) {
		 //使用jaxWs发布SOAP协议的WebService
        JaxWsServerFactoryBean jaxWsServerFactoryBean=new JaxWsServerFactoryBean();
        //指定WebService地址
        jaxWsServerFactoryBean.setAddress("http://127.0.0.1:6666/hello");
        //指定portType
        jaxWsServerFactoryBean.setServiceClass(IHelloWord.class);
        //指定服务类对象
        jaxWsServerFactoryBean.setServiceBean(new HelloWorldImpl());
        //发布服务
        jaxWsServerFactoryBean.create();
        System.out.println("发布服务成功");
	}
}

 

服务端启动成功截图

 

CXF入门教程(一)_第3张图片

【运行服务代码之后,使用Wsimport生成客户端代码,并导入客户端】

文字代码:wsimport -s . http://127.0.0.1:6666/hello?wsdl(使用之前,一定要确保你的cxf环境变量设置是成功了的,否则会报错)

CXF入门教程(一)_第4张图片

生成的客户端代码如下

CXF入门教程(一)_第5张图片

 客户端工程截图

CXF入门教程(一)_第6张图片

ClientTest.java】

package test.cxf.client;

import java.util.List;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

import test.cxf.service.IHelloWord;

public class ClientTest {
	public static void main(String[] args) {
	 //jaxWsProxyFactoryBean调用WebService服务端
        JaxWsProxyFactoryBean jaxWsProxyFactoryBean=new JaxWsProxyFactoryBean();
        //调用地址
        jaxWsProxyFactoryBean.setAddress("http://127.0.0.1:6666/hello?wsdl");
        //设置portType
        jaxWsProxyFactoryBean.setServiceClass(IHelloWord.class);
        //创建portType
        IHelloWord create = (IHelloWord) jaxWsProxyFactoryBean.create();
        //调用portType方法
        System.out.println(create.say("CXF"));
        
	}
}

 

客户端调用成功后截图

 

cxf简单入门程序到这里就结束了,若遇到问题,请留言反馈!

你可能感兴趣的:(JAVA)