一、概述
1、ApacheCXF项目是由ObjectWeb Celtix和CodeHaus XFire合并成立。ObjectWeb Celtix是
由IONA公司赞助,于2005年成立的开源Java ESB产品,XFire则是业界知名的SOAP堆栈。
合并后的ApacheCXF融合该两个开源项目的功能精华,提供了实现SOA所需要的核心ESB功能框架,
包括SOA服务创建,服务路由,及一系列企业级QoS功能。
2.支持标准
(1)JAX-WS,JSR-181,saaj,JAX-RS
(2)SOAP 1.1,1.2,WS-I BasicProfile,WS-Security,WS-Addressing,WS-RM,WS-Policy
(3)WSDL 1.1
(4)MTOM
3.传输方式,绑定,数据绑定,传送数据格式
(1)绑定: SOAP,REST/HTTP
(2)数据绑定: JAXB 2.x,Aegis,XMLBeans,SDO
(3)传送数据格式: XML,JSON,fastinfoset
(4)传输方式: HTTP,Servlet,JMS
二、基于SOAP发布webservice
(1)pom.xml文件中导入CXF相关包
- <dependency>
- groupId>org.apache.cxf</artifactId>cxf-rt-coreversion>2.6.2>
- >cxf-rt-frontend-jaxws>cxf-rt-transports-http>
(2)web.xml文件中配置
- package com.icsshs.dmis.webservice.soap;
- import javax.jws.WebParam;
- import javax.jws.WebService;
- import com.icsshs.dmis.webservice.soap.response.UserDTO;
- /**
- * JAX-WS2.0的WebService接口定义类 *
- * 使用JAX-WS2.0 annotation设置WSDL中的定义.
- * 使用WSResult及其子类包裹返回结果.
- * 使用DTO传输对象隔绝系统内部领域对象的修改对外系统的影响.
- *
- */
- //name 指明wsdl中<wsdl:portType>元素的名称
- @WebService(name = "UserService", targetNamespace = WsConstants.NS)
- public interface UserService {
- //@WebService是必须的;@WebParam不是必须的。
- //如果没有@WebParam的描述,在wsdl文件内描述的方法中,参数名将变为arg0,arg1…以此类推.
- public String getUserName(@WebParam(name = "userId")String userId);
- public UserDTO getUser( }
UserService接口实现类:
访问:http://localhost:8080/dmis/cxf/soap/userService?wsdl
三、基于SOAP的客户端调用
(1)通过代理API调用,依赖于服务端的接口
(1)pom.xml文件中导入CXF相关包
访问:http://localhost:8080/dmis/cxf/jaxrs?_wadl
五、基于JAX-RS的Restful客户端调用
(1)依赖服务端的接口,通过代理API调用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。