03.WebService_CXF

03.WebService_CXF

一、什么是CXF?

Apache CXF = Celtix + Xfire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。Apache CXF 是一个开源的 web Services 框架,CXF 帮助您构建和开发 web Services ,它支持多种协议,比如:SOAP1.1,1,2 XML/HTTP、RESTful 或者CORBA。

RESTful: 一种风格而不是一个协议。它理念是网络上的所有事物都被抽象为资源,每个资源对应一个唯一的资源标识符。

Cxf是基于SOA总线结构,依靠spring完成模块的集成,实现SOA方式。

灵活的部署: 可以运行在Tomcat,Jboss,Jetty(内置),weblogic上面。

环境变量的配置

CXF_HOME: 安装目录。

Path: bin目录。

二、使用CXF发布jax-ws规范的WebService

1.服务端

第一步: 创建一个java工程

第二步: 导入cxf的jar包。138个

第三步: 编写SEI接口。需要在SEI接口上添加@Webservice注解。

第四步: 编写SEI实现类。不需要加注解。

第五步: 发布服务

1、创建一个JaxWsServerFactoryBean对象

2、设置SEI接口setServiceClass

3、设置SEI实现类对象。setServiceBean

4、设置服务发布地址。setAddress

5、发布服务。Create

POJO

SEI

SEI实现类

发布服务

查看服务

2.wsdl3java命令

3.客户端开发

(1)传统客户端开发

结果:

日期: 2016-07-27 最高温度: 30 最低温度: 20 天气信息: 北京: 今天很热 ============================================ 日期: 2016-07-28 最高温度: 31 最低温度: 21 天气信息: 北京: 今天小雨 ============================================ 日期: 2016-07-29 最高温度: 32 最低温度: 22 天气信息: 北京: 今天大雨 ============================================

(2)使用CXF实现客户端

步骤:

1、导入cxf的jar包

2、创建一个JaxWsProxyFactoryBean对象

3、设置一个PortType的class。

4、设置一个address。服务端的url包括ip及端口。

5、调用create方法生成PortType代理对象。

6、调用服务端方法

7、打印结果。

结果:

日期: 2016-07-27 最高温度: 30 最低温度: 20 天气信息: 上海: 今天很热 ============================================ 日期: 2016-07-28 最高温度: 31 最低温度: 21 天气信息: 上海: 今天小雨 ============================================ 日期: 2016-07-29 最高温度: 32 最低温度: 22 天气信息: 上海: 今天大雨 ============================================

越努力,越幸运!

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2017-11-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大魏分享(微信公众号:david-share)

一个自来水公司的业务集成-数据库与Restful API的对接:构建以API为中心的敏捷集成系列-第三篇

CoolWater Inc.是一家当地的自来水公司,客户需要实施支付管理系统,目的是为客户提供便捷的在线水费支付界面。

21820
来自专栏Golang语言社区

深入理解Wi-Fi P2P

本章主要内容: 介绍Wi-Fi P2P相关知识; 介绍Android中WifiP2pService、wpa_supplicant的相关代码。 7.1 概述 承...

50530
来自专栏北京马哥教育

超实用:小团队如何从零搭建一个自动化运维体系?

如下图,现在行业内各巨头自动化运维架构的最终样子大家都知道了,但是如何根据自己团队当前的情况一步步向这个目标演进?

16500
来自专栏加米谷大数据

Kafka性能测试

耗时:18秒 总体文件大小:2193.45MB 最大处理量:163.6659MB/S TPS:171616.1767条

36920
来自专栏腾讯Bugly的专栏

【Dev Club 分享】安卓单元测试:What, Why and How

Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师。每周都会举行嘉宾分享,话题讨论等活动。 本期,我们邀请了蘑...

34160
来自专栏技术小黑屋

优秀的英文技术博客

技术是没有国界的,想要学习先进的技术就不能仅仅局限于中文博客。本着独乐乐不如众的原则,这里分享几个本人一直订阅的英文博客。主要涉及的技术为Java或Androi...

27310
来自专栏轮子工厂

C/C++、Java和Python开发工具一网打尽

在我们埋头于代码死磕的时候,会发现一个好的开发工具往往会起到事半功倍的效果,本帖子总结了C语言与Java几个比较流行的开发工具,希望能对大家有用。

23220
来自专栏编舟记

怎样才算学会PythonPython 实践基础

假如你已经有了编程基础,那么学习一门新语言的困难点绝对不在语法、语义和风格等代码层面上的,而在于语言范式(OO,FP还是Logic),语言的生态(如:依赖管理和...

17620
来自专栏Flutter入门到实战

深入理解什么是RESTful API ?

越来越多的人开始意识到,网站即软件,而且是一种新型的软件。   这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(hi...

1.9K20
来自专栏ImportSource

NoSQL 一致性[详解]更新一致性

翻译内容: NoSQL Distilled 第五章 Consistency 作者简介: ? 本节摘要: 一致性向来是分布式的一大问...

41670

扫码关注云+社区

领取腾讯云代金券