基于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文件修改扩展数据传输对象,不能通过其他的方式定义传输对象。

posted @ 2026-02-04 20:19  赵安安,河北科技大学。  阅读(0)  评论(0)    收藏  举报