当前位置: 首页 > news >正文

基于cxf-webservice的OA与OB系统对接方案实例研究

基于cxf-webservice的OA与OB系统对接方案实例研究

一、WSDL传输数据定义规范

网络通信传输数据以DTO的方式进行传输,DTO是Data Transfer Object的简写,DTO是数据对象,在传输之前进行数据提取和组织,通过实例化机制进行聚合,WSDL自定义扩展数据以XSD文件方式进行严格定义。

WSDL是标准化的webservice服务描述语言,是Web Services Description Language的简写,用于描述Web服务的公共接口。WSDL 文档可以分为两部分:顶部分是数据类型定义容器,使用XSD作为扩展数据类型,底部分是接口具体描述信息。

二、扩展数据XSD在实例中的应用实例

目前最主流的webservice使用CXF框架集成,开发CXF的实例的步骤很明确:

  1. 编写WSDL文件和自定义扩展数据XSD文件。
  2. 以CXF-server命令方式,基于WSDL文件和XSD文件生成客户端和服务端webservice接口代码。
  3. 通过自定义接口实现类完成OA与CM系统对接方案实例。

1)编写WSDL文件和XSD文件

如下图所示是WSDL文件中数据类型定义容器,标红的地方是引用的自定义XSD文件。

 

 

 

 

从OA系统获取用户名称、用户年龄、用户性别等信息定义。

2)以CXF-server命令方式生成客户端和服务端代码。

这里使用的apache-cxf-2.4.4版本,该版本依赖lib文件和生成代码bin文件需要从官网去下载,下载地址为:

下载文件后,lib文件放到工程webroot\lib下,然后配置bin文件环境变量,使用下面的命令生成代码:

 

 

 

 

 

 

注意:使用wsdl文件生成客户端和服务端代码,不要使用“-p”参数。使用“-p”参数生成的代码不含有wsdl定义的包路径;不使用“-p”参数的时候,才会按照wsdl定义的包路径生成代码。

> wsdl2java -d D:\\src\\client -client .\HelloWorldService.wsdl

> wsdl2java -d D:\\src\\server -server .\HelloWorldService.wsdl

3)自定义接口实现类完成OA与OB系统对接

服务端代码如下,主要包含创建服务端,创建服务端返回的DTO数据,服务端组织DTO信息到返回响应,最后服务端返回响应信息:

 

 

客户端代码如下,主要包含实例化客户端,客户端组织信息头和信息体,用于查询请求,客户端连接到服务器,获取服务器信息和查询编码,最后打印获取到的信息:

 

 

 

四、结论

通过OB系统查到的人员信息如下:

 

 

上面实例中可以看到WSDL是CXF-webservice接口规范,其中明确定义传输数据对象DTO属性信息,客户端和服务端的接口代码依赖WSDL文件和引入的自定义XSD文件,当WSDL文件修改时,接口代码也随之发生了变化。同时webservice中只能通过XSD文件修改扩展数据传输对象,不能通过其他的方式定义传输对象。

http://www.jsqmd.com/news/342803/

相关文章:

  • C++并发编程学习(二)—— 线程所有权和管控
  • 2026医院子母钟系统供应商选哪家?五大品牌综合评估与推荐 - 深度智识库
  • 基于深度学习的玉米虫害检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • bazel报错:@com_google_absl//absl/container: Unable to load file @rules_cc//cc:cc_library.bzl
  • 2026学校标准化考场电子时钟五大厂家对比分析首选推荐指南 - 深度智识库
  • 实用指南:django rest framework:从零开始搭建RESTful API
  • 2026医院子母钟系统供应商推荐:西安伟洲电子科技引领精准时间同步新标准 - 深度智识库
  • 6.8 Bookinfo故障排查实战:服务调用失败、性能瓶颈诊断技巧
  • 【金融项目实战】3_接口测试 _提取测试点和编写用例
  • 设计副业技能匹配工具,输入自身技能,匹配需求副业,标注技能提升方向,帮助从业者发挥优势,提升副业竞争力。
  • 制作小商家营销方案生成工具,输入店铺类型及目标人群,生成适配营销方案(线上/线下),标注执行步骤,帮小商家低成本获客。
  • [信息论与编码理论专题-18]:信息熵 = 一件事的“不可预测程度”,并且用数学度量
  • 【ACM模式】队列操作
  • 2026年北斗NTP网络时间服务器厂家TOP5推荐:精准授时助力行业数字化升级 - 深度智识库
  • 我花了一天时间,拆了一下 OpenTeleDB 的 XStore,到底解决了 PG 的哪根老筋?
  • AI代理:AI原生应用领域的关键驱动力
  • 使用darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74训练图片是怎么生成权重文件的,怎么定义权重文件名?
  • 26年人形机器人谁领跑 智平方依托GOVLA大模型+近5亿订单跻身十强
  • AI产品经理核心能力图谱:不只是写Prompt,这些能力才是关键!
  • Plotly + Dash:构建交互式数据仪表盘的艺术与实战
  • 进程与线程:8核CPU究竟能创建多少?
  • 实测中石化加油卡回收平台,京顺回收闲置卡券变现优选 - 京顺回收
  • Kmesh-Waypoint 深度解析:Kmesh 服务网格的七层流量管理引擎
  • 模型服务化这件事:从 Batch 到 Stream,不只是改个部署方式那么简单
  • 提示工程架构师工具选型:破解Agentic AI技术挑战的6款必备开源框架
  • AI大模型产品经理修炼手册 | 七阶段学习路线,收藏不迷路
  • Itinerary(行程单)
  • LLM支持的AI Agent实体链接技术
  • 从不会AI到转型产品经理:一位35+研发的100天真实记录
  • 人机共创在AI原生应用中的发展路径探索