加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService-CXF简介

发布时间:2020-12-16 23:36:39 所属栏目:安全 来源:网络整理
导读:百度百科 什么是CXF Apache CXF = Celtix + Xfire 支持多种协议: ? SOAP1.1,1,2 ? XML/HTTP ? CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构,早期语言使用的WS。C,c++,C#) ? 并可以与Spring进行快速无缝的整合 ? 灵活的部署

百度百科


什么是CXF

Apache CXF = Celtix + Xfire
支持多种协议:
?SOAP1.1,1,2
?XML/HTTP
?CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构,早期语言使用的WS。C,c++,C#)
?并可以与Spring进行快速无缝的整合
?灵活的部署:可以运行在Tomcat,Jboss,Jetty(内置),IBMWS,BeaWL上面。

1jax-wsSun公司发布的一套开发WebService服务的标准。早期的标准如jax-rpc已经很少使用(在目前的jdk当中也没有附带这个工具,axis就是使用的这个标准。)。而cxf就是在新标准jax-ws下开发出来的WebServicejax-ws也内置到了jdk1.6当中。(对于2006年以前的jax-rpcremoteprocess call)就不要再去研究了)。

2、关于更多Jax-ws规范的说明请见官方发布的文档:本目录下的jax-ws.pdf

3、关于与Spring的整合,将后后面的章节讲解。最终将我们的服部署到Tomcat服务器上。

4、在CXF之前的许多WebService框架如:axis,xFire有兴趣的同学可以自己去了解一下。






1、需要说明的是:我下载的是最新版本的cxf框架,它基于jdk1.7创建,目前我们机上安装的都是jdk1.6.

等一会儿对于使用cxf2.4生成的客户端代码要进行适当的调整




Bus

BusCXF框架的支撑.CXF Busspring配置文件构成(cxf.xml),servlet初始化时

通过SpringBusFactory加载,它为所有终端定义了公共的上下文.它织入了所有运行

时的结构组件并提供了一个公共的应用上下文.SpringBusFactory扫描并加载类路径

下的META-INF/cxf目录并从以下文件构建上下文.

META-INF/cxf/cxf.xml

META-INF/cxf/cxf-extension.xml

META-INF/cxf/cxf-property-editors.xml

XML文件是安装CXF类库的一部分.CXF内部使用Spring配置.cxf.xml文件中bus定义如

:

<bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl" />

核心bus组件是CXFBusImpl,该类更多扮演拦截器供应商的角色对于终端出入的请求.

这些拦截器一旦应用,即可用于上下文中所有的终端.cxf.xml文件也定义了其他的组

,比如BindingFactoryManager,ConduitFactoryManager等等.这些组件可用于bus

的扩展.可以使用getExtension()方法这些组件.注册这些组件以用于获取或更新服

务终端级别参数如服务绑定,传输协议,中转等等.

--------------

Frontend-前端:

Frontend

CXF提供了前端建模的概念,可以使用不同的前端API创建ws.这些API使用简单工厂

beanJAX-WS实现创建ws.可以创建动态ws客户端.CXF支持的前端主要是JAX-WS.

---------

Messageandintercetpors:

消息和拦截器

CXF框架中重要的组件之一是拦截器组件.拦截器拦截客户端和服务器间的消息.

CXF,这通过拦截器链的概念实现.拦截器链是CXF运行时的核心功能.链中的每个拦截

器是可配的,用户可以控制他的执行.

框架的核心的是拦截器接口,它定义了两个方法handleMessagehandleFault,都携

Message类型作为参数.

拦截器通常分组成各阶段.每个阶段执行特定的消息处理,每个阶段又被添加到拦截

器链中,因此,链有时有序的拦截器阶段的列表.典型的ws终端有三个连接器链:

Inbound messages chain(入消息链)

Outbound messages chain(出消息链)

Error messages chain(错误消息链)

内置拦截器如日志,安全,也可以自定义拦截器.

-----

Service Model-主要用于生成wsdl文件的各个元素。

建模service,创建各种WSDL元素如操作,绑定,终端,schema等等.

如下显示了服务模型中的各个组件:

-------

Databinding

数据绑定是ws开发的关键.它意味着java对象和xml元素之间的映射.数据绑定组件执

行这一工作.CXF最新版本使用JAXB2.1.JAXB使用注解定义java对象和XML之间的映射.如下:

@XmlRootElement(name="processOrder",

? ?????? namespace="http://localhost/orderprocess")

@XmlAccessorType(XmlAccessType.FIELD)

@XmlType(name="processOrder",namespace="http://localhost/orderprocess")

public class OrderProcess {

? @XmlElement(name="arg0",namespace="")

? privateorder.Order arg0;

? //Gettter and Setter

? …

}

-----------

协议绑定:protocol bindings

CXF支持以下形式的绑定:

SOAP1.1

SOAP1.2

CORBA

Pure XML

--

数据传输——transport

CXF支持以下数据传输方式:

HTTP

CORBA

JMS

LOCAL




安装CXF的其他支持项目:


lAnt
lTomcat
l并设置以下环境变量:
?JAVA_HOME?
?CXF_HOME
?ANT_HOME
?CATALINA_HOME
?Path =%JAVA_HOME%bin;%CXF_HOME%bin;%CATALINA_HOME%bin;%ANT_HOME%bin
?CLASSPATH=.;%CXF_HOME%libcxf-manifest.jar ;.buildclasses

1、为什么要用到ant这个工具呢?Ant做为一种工具已经广泛被使用,并且历史悠久。使用ant的内置命令,可以编译java源文件(javac),运行java文件(java),给class文件打包(jarwarear),也可以创建(mkdir)、删除(del)、拷贝(copy),甚至可以使用ant执行sql文件。由于ant是用xml语言写成的文件,并取默认名为build.xml文件。所以,今后大家应该在见到名为build.xml文件时知道这是一个ant的文件。

2、默认在EclipseMyEclipse的对ant有内建的支持。大家可以在MyEclipse中任意项目中建立一个文件叫build.xml文件,你会发现它有不同的图标(上面有个小蚂蚁)。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读