Cxf - 基础和示例

来源:互联网 发布:自动画线源码 编辑:程序博客网 时间:2024/04/28 15:19

一、简介

    WebService是一种跨平台、跨语言的规范。解决远程、跨平台、跨语言应用之间的调用。


二、框架

    Axis --> Axis2(Apache,Web Service框架)

    XFire --> CXF(Apache,SOA框架(XFire(Web Service框架) + Celtix(ESB(企业服务总线)框架)))


三、配置

    下载CXFapache-cxf-2.7.10,在环境变量Path中添加D:\JavaIDE\apache-cxf-2.7.10\bin;


四、依赖

    


五、服务端

    1、说明

        (1)服务端添加Cxf相关的Jar

        (2)每个Web Service组件需要两个部分,即接口和实现类
    1、接口

        接口需要使用java.jws.WebServie注解

import javax.jws.WebService;@WebServicepublic interface UserInfoWs {    public String sayHello(String name);  }

    2、实现

        实现类同样需要使用java.jws.WebService注解,同时还需要指定其endpointInterface即实现的接口和serviceNameService的属性

import javax.jws.WebService;import com.xilen.cxf.ws.UserInfoWs;@WebService(serviceName="UserInfoWsImpl",endpointInterface="com.xilen.cxf.ws.UserInfoWs")public class UserInfoWsImpl implements UserInfoWs {@Overridepublic String sayHello(String name) {return name + ", Hello!";}}
    3、发布

        通过内嵌Jetty服务器,调用javax.xml.ws.Endpointpublish()方法发布WebService

import javax.xml.ws.Endpoint;import com.xilen.cxf.ws.UserInfoWs;import com.xilen.cxf.ws.impl.UserInfoWsImpl;public class ServerMain {public static void main(String[] args) {UserInfoWs hw = new UserInfoWsImpl();Endpoint.publish("http://192.168.1.100/cxf", hw);}}
六、客户端

    1、说明

        客户端在简单调用的情况下,无需依赖任何Cxf的Jar

    2、生成

        客户端利用CXF中的wsdl2java工具,根据Server端的wsdl文档生成Web Service相关的Java代码

 D:\Works\CxfClient\src>wsdl2java http://192.168.1.100/cxf?wsdl
    3、调用

import com.xilen.cxf.ws.UserInfoWs;import com.xilen.cxf.ws.impl.UserInfoWsImpl;public class ClientMain {public static void main(String[] args) {//在生成的Java类中继承javax.xml.ws.Service的类可作为工厂来使用UserInfoWsImpl factory = new UserInfoWsImpl();//通过工厂类实例来获取远程Web Service对象的代理UserInfoWs ui = factory.getUserInfoWsImplPort();//调用代理的方法实现远程调用System.out.println(ui.sayHello("Admin"));}}>
    4、结果

        Admin, Hello!






0 0
原创粉丝点击