一、概述

Apache CXF提供了用于方便地构建和开发WebService的可靠基础架构。它允许创建高性能和可扩展的服务,可以部署在Tomcat和基于Spring的轻量级容器中,也可以部署在更高级的服务器上,例如Jboss、WebSphere或WebLogic。 CXF提供了以下功能:

WebService服务标准支持:

Java API for XML Web Services (JAX-WS)

SOAP

WebService描述语言(Web Services Description Language ,WSDL)

消息传输优化机制(Message Transmission Optimization Mechanism,MTOM)

WS-Basic Profile

WS-Addressing

WS-Policy

WS-ReliableMessaging

WS-Security

前端建模:CXF允许使用不同的前端API来创建Service。如CXF允许使用简单的工厂Bean并通过JAX-WS实现来创建WebService,允许创建动态WebService客户端。

工具支持:CXF提供了在Java Bean、WebService和WSDL之间进行转换的工具,提供了对Maven和Ant集成的支持,并无缝地支持Spring集成。

RESTful支持:CXF支持Restful,并支持Java平台的JAX-RS实现。

对不同传输和绑定的支持:CXF支持不同数据类型的传输,除了支持SOAP和HTTP协议绑定外,还支持JAXB和AEGIS绑定。

对非XML绑定的支持:CXF支持非XML绑定,如JSON、CORBA、JBI和SCA等。

Code First和Xml First:CXF支持使用Code First或者Xml First的方式创建WebService。

二、使用CXF内置jetty发布WebService

maven:

3.1.4

org.apache.cxf

cxf-rt-frontend-jaxws

${cxf.version}

org.apache.cxf

cxf-rt-transports-http

${cxf.version}

org.apache.cxf

cxf-rt-transports-http-jetty

${cxf.version}

---

接口:

@WebServicepublic interfaceHelloService{publicString helloCxf();publicString hello(String name);publicUser getUser(int id);public voidsaveUser(User user);

}

实现:

@WebService(serviceName = "helloService",

endpointInterface= "cn.lg.ws.hellocxf.HelloService")public class HelloServiceImpl implementsHelloService{

@OverridepublicString helloCxf(){return "Hello CXF!";

}

@OverridepublicString hello(String name)

{return "Hello " +name;

}@OverridepublicUser getUser(int id) {

User u1= newUser();returnu1;

}

@Overridepublic voidsaveUser(User user) {

System.out.println(user.toString());

}

}

发布:

public classPublishService{/*** 使用CXF的JaxWsServerFactoryBean发布服务

*@param

*/

public static voidmain(String[] args) {

JaxWsServerFactoryBean factory= newJaxWsServerFactoryBean();

factory.setServiceClass(HelloService.class);//服务发布地址

factory.setAddress("http://localhost:8088/soap/hello");

factory.setServiceBean(newHelloServiceImpl());

factory.create();

System.out.println("publish success");

}

}

使用浏览器访问 http://localhost:8088/soap/hello?wsdl 可以看到wsdl如下,则说明发布成功

使用CXF在客户端调用WebService:

public classClientTest{public static voidmain(String[] args) {

JaxWsProxyFactoryBean jwpfb= newJaxWsProxyFactoryBean();

jwpfb.setServiceClass(HelloService.class);

jwpfb.setAddress("http://localhost:8088/sop/hello");

HelloService hs=(HelloService) jwpfb.create();

System.out.println(hs.getUser(101));Q.p(hs.hello("luangeng"));

}

}

---

相关类可通过以下命令产生:

wsimport -p com.ickes.cxf.client -keep http://localhost:8088/sop/hello?wsdl

Apache CXF 的详细介绍:请点这里

Apache CXF 的下载地址:请点这里

linux cxf服务端,Apache CXF 框架应用实战相关推荐

  1. cxf 服务端soap报文_使用Apache CXF开发SOAP Web服务

    cxf 服务端soap报文 在上一篇文章中,我逐步介绍了使用apache CXF开发简单的RESTFull服务的步骤. 在本文中,我将讨论使用CXF开发SOAP Web服务. 在继续前进之前,让我们先 ...

  2. java cxf服务端代码_【JAVA】 cxf 生成 webservice 服务端代码

    CXF Apache CXF = Celtix + XFire.CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding . ...

  3. SpringBoot2 整合 CXF 服务端和客户端

    文章目录 一.CXF服务端 1. 导入依赖 2. 创建service接口 3. 接口实现类 4. cxf配置类 5. 查看wsdl结果 二.CXF客户端 2.1. 客户端 2.2. 断点调试 2.3. ...

  4. 《Linux多线程服务端编程:使用muduo C++网络库》书摘6.6.2节

    6.6.2 常见的并发网络服务程序设计方案 W. Richard Stevens 的<UNIX 网络编程(第2 版)>第27 章"Client-ServerDesign Alte ...

  5. 《Linux多线程服务端编程:使用muduoC++网络库》学习笔记

    文章目录 第1章 线程安全的对象生命期管理 1.1 当析构函数遇到多线程 1.1.1 线程安全的定义 1.1.3 线程安全实例 1.2 对象的创建很简单 1.3 销毁很难 1.4 线程安全的Obser ...

  6. 新书预告:《Linux 多线程服务端编程——使用 muduo C++ 网络库》

    看完了 W. Richard Stevens 的传世经典<UNIX 网络编程>, 能照着例子用 Sockets API 编写 echo 服务, 却仍然对稍微复杂一点的网络编程任务感到无从下 ...

  7. Linux多线程服务端编程学习(四)finger服务的实现

    源码下载以及安装点击链接https://blog.csdn.net/YoungSusie/article/details/90021742 分类 Muduo网络库编程 学习笔记 例 七步实现finge ...

  8. nuxt2,服务端渲染应用框架, 从创建开发到部署上线

    文章目录 前言 一.创建一个nuxt项目 二.目录解读 三.新建页面,路由跳转 四.组件的使用 五.插件的使用 六.异步数据和代理,nuxt中使用axios和proxy代理 七.nuxt Seo优化 ...

  9. linux cxf服务端,cxf linux问题

    请各位大神原谅我在nutz上问这个问题..... Mar 28, 2016 4:56:46 PM org.apache.cxf.wsdl.service.factory.ReflectionServi ...

  10. cxf restful_使用Apache CXF开发RESTful服务

    cxf restful 介绍 如您所知,有两种开发Web服务的方法 简单对象访问协议(SOAP) 代表性状态转移(REST) 在继续学习如何使用Apache CXF创建基于REST的Web服务之前,我 ...

最新文章

  1. iexpress全力打造“免检”***
  2. B站上线斯坦福最新「机器学习系统(MLSys)」全集,小伙伴有福了!
  3. 愚人节“整人”小心被病毒“整”
  4. 5加载stm32 keil_「keil」嵌入式STM32开发环境之Keil5的安装(附资源) - 金橙教程网
  5. 生成自签名ssl证书
  6. linux socket使用情况 ss -s ss -t -a | cat /proc/net/socketstat
  7. Magento教程 20:仅限会员留言的产品评论设定!
  8. Oracle 10g OCP 官方培训
  9. jrtplib库移植到android上
  10. SCAU高级语言程序设计--实验6 循环结构(二)(1)
  11. Edge浏览器快捷键
  12. 如何在Mac电脑上打开终端
  13. java Base64带秘钥的加密解密
  14. 智慧果园系统——以水肥一体化系统功能为基础实现智慧果园系统项目 需求文档
  15. CN基于词库的中文转拼音优质解决方案,单类单文件版,支持低版本PHP
  16. 95年有g510台式计算机吗,台式电脑太老了换cpu能行吗?
  17. Facebook如何安全度过新账号阶段不被封号
  18. 聊天功能,实现:每增加一条消息整体往上移动,滚动查看聊天记录
  19. linux中cp命令详解
  20. 在windows11环境下如何通过主机名ping通其它系统

热门文章

  1. minist数据集的获取方法
  2. 浅谈安科瑞餐饮油烟在线监测系统在餐饮油烟治理中起到的作用
  3. 搞懂激活函数(Sigmoid/ReLU/LeakyReLU/PReLU/ELU)
  4. ST-LINK官方驱动下载方法
  5. Java集合面试题(总结最全面的面试题)
  6. 数字图像处理报告:实验4 图像复原
  7. 使用QT写的串口调试助手源代码分享(一)
  8. 记录关于下拉省市级联遇到的一个json对象转数组的难点
  9. UDP与TCP报文格式,字段意义
  10. 学术论文的定义、特点、写作方法以及写作格式