WS穿透场景:即WS代理服务直接关联一个WS业务服务,由业务服务完成所代理的服务请求。在ESB中,WS服务是通过基于HTTP的SOAP协议进行调用。在HTTP Transport中配置代理服务的协议、端口号及连接参数,在HTTP Endpoint中配置业务服务对应的协议,所在的主机地址、端口号及连接参数。WS服务也遵循请求/响应模式。
本节讲述了WS协议穿透场景的创建过程,包括创建ESB工程、创建WS协议相关的服务、部署、监控和运行。通过本节你将了解到如下内容:
- 如何创建WS协议穿透场景;
- 如何在Studio中测试运行开发的业务逻辑;
- 如果通过ESB Governor部署WS相关的Module;
- 如何运行并测试WS穿透;
本节包含如下几部分内容。
- 创建ESB工程
- 创建公共Module
- 创建HTTP Transport
- 创建HTTP Endpoint
- 创建业务Module
- 创建WS业务服务
- 创建WS代理服务
- 导出部署包
- 部署
- 测试运行
示例如附件所示:ws穿透.zip
# 创建工程
启动ESB Studio。
在资源管理器中,鼠标右键选择“创建 > ESB项目”,创建ESB项目,如下图所示。
在“新建ESB项目”界面,输入“项目名称”、“作者”,选择“ESB服务器”、“R/R数据库”等基本信息。如下图所示。
说明
- ESB 服务器:运行 Module 时使用的 ESB Server。通过首选项进行 ESB Server 的增加、删除等。
- R/R 数据库:用于存储 Module 的资源数据库。该配置必须与所选 ESB Server 的数据库配置保持一致。缺省配置下,ESB Server和R/R数据库均连接 Studio 安装时配置的数据库。
单击“下一步”,进入“添加项目引用库”界面,如下图所示。
说明
- 可以添加系统引用库、外部引用库和内部引用库。
单击“完成”,系统返回ESB开发透视图,创建的项目在"资源管理器"视图中显示,如下图所示。
# 创建公共Module
在资源管理器中,选中创建好的项目,鼠标右键选择“创建 > 公共Module”,创建公共Module,如下图所示。
在“公共Module”对话框中,填写Module名称等信息,如下图所示。
公共Module相关填写项的填写规则如下。
参数 说明 Module名称 Module的名称。由数字、字母、下划线(_)组成。 显示名称 Module显示名称。由数字、字母、中文、点(.)、下划线(_)组成。 版本 由数字和点(.)组成。 单击“完成”,公共Module创建完成,如下图所示。
# 创建HTTP Transport
在创建的ESB项目的“Transport”上,右键选择“创建 > HTTP类型Transport”,如下图所示。
在弹出的“创建HTTP类型Transport”界面,选择当前的工程、Module,并输入文件名及显示名称,如下图所示。
HTTP Transport基本配置项的填写规则如下。
参数 说明 选择工程 当前操作的工程。 选择Module 当前操作的公共Module。 文件名 文件名。由数字、字母、下划线(_)组成,必须以字母开头。 显示名称 显示名称。由数字、字母、中文、点(.)、下划线(_)、中横线(-)组成。 描述 对该HTTP Transport的简要描述。 单击“完成”,HTTP Transport创建完成,如下图所示。
在资源管理器中,双击创建的HTTP Transport,打开HTTP Transport编辑器,修改相关参数。如下所示。
参数 说明 ID HTTP Transport的唯一标识。HTTP Transport创建时自动生成。 显示名称 HTTP Transport的显示名称。由数字、字母、中文、点(.)、下划线(_)、中横线(-)组成。当在Developer中设置为“使用显示名称”时,该Transport显示该名称。 协议 支持http、https协议。 Restful 是否启动restful接口请求方式。 端口 访问HTTP服务的端口。范围从1025到65535,可以选择int型的变量或常量。 HTTP Transport配置完成后,单击工具栏中的保存图标。
# 创建HTTP Endpoint
在创建的ESB项目的“Endpoint”上,右键选择“创建 > HTTP类型Endpoint”,如下图所示。
在弹出的“创建HTTP类型Endpoint”界面,选择当前的工程、Module,并输入文件名及显示名称,如下图所示。
HTTP Endpoint基本配置项的填写规则如下。
参数 说明 选择工程 当前操作的工程。 选择Module 当前操作的公共Module。 文件名 文件名。由数字、字母、下划线(_)组成,必须以字母开头。 显示名称 显示名称。由数字、字母、中文、点(.)、下划线(_)、中横线(-)组成。 描述 对该HTTP Endpoint的简要描述。 单击“完成”,HTTP Endpoint创建完成,如下图所示。
在资源管理器中,双击创建的HTTP Endpoint,打开HTTPEndpoint编辑器,修改相关参数。如下所示。
参数 说明 ID HTTP Endpoint创建时自动生成,不可修改。 显示名称 HTTP Endpoint的显示名称,由数字、字母、中文、点(.)、下划线(_)、中横线(-)组成。当在Developer中设置为"使用显示名"时,该Endpoint显示该名称。 主机地址 HTTP Endpoint连接的服务器地址,必填。 端口 HTTP Endpoint连接的服务器端口号,范围从1025到65535。 协议 服务器提供的HTTP协议类型,支持http和https。 HTTP Endpoint配置完成后,单击工具栏中的保存图标。
# 创建业务Module
在资源管理器中,选中创建好的项目,鼠标右键选择“创建 > 业务Module”,创建业务Module,如下图所示。
在“业务Module”对话框中,填写Module名称等信息,如下图所示。
业务Module相关填写项的填写规则如下。
参数 说明 Module名称 Module的名称。由数字、字母、下划线(_)组成。 显示名称 Module显示名称。由数字、字母、中文、点(.)、下划线(_)组成。 版本 由数字和点(.)组成。 单击“完成”,业务Module创建完成,如下图所示。
# 创建WS业务服务
说明
将服务提供者“wsdemo.war”在tomcat中启动。
在资源管理器中,在新建的业务Module“com.primeton.esb.project.restaurant”的“业务服务”上,鼠标右键选择“创建 > WS业务服务”,创建WS业务服务,如下图所示。
在打开的“创建WS业务服务”对话框中,输入类别信息,如下图所示。
单击“完成”,在打开的“WS业务服务”的编辑界面中,需要选择Endpoint和填写URI信息,如下图所示。
在“WS业务服务”的编辑界面,单击“Endpoint*”后面的“选择...”,弹出“Http Endpoint”对话框,选择之前创建的HTTP Endpoint,单击“确定”。如下图所示。
在“WS业务服务”的编辑界面,单击“URI*”下面的“导入WSDL”链接,弹出"导入WSDL"对话框。 在“WSDL地址”的输入框中输入WSDL地址:http://127.0.0.1:8080/wsdemo/services/CustMgrService?wsdl (opens new window) ,然后单击后面的“导入”,Studio会自动导入WSDL的相关信息,勾选操作列表的操作,最后单击“完成”,完成WSDL的导入步骤,如下图所示。
单击工具栏的保存,完成WS业务服务的创建,如下图所示。
在操作信息中,业务校验项中,可根据需要对业务请求结果进行校验,判定此次业务调用结果为成功或者失败,失败时自动重试。点击选择,在弹出框中选择开发的业务校验类,点击确定即可。
# 创建WS代理服务
在资源管理器中,在新建的业务Module“com.primeton.esb.project.restaurant”的“代理服务”上,鼠标右键选择“创建 > WS代理服务”,创建WS代理服务,如下图所示。
在打开的“创建WS代理服务”对话框中,输入类别信息,如下图所示。
单击“完成”,在打开的“WS代理服务”的编辑界面中,需要选择Transport和填写URI信息,如下图所示。
在“WS代理服务”的编辑界面,单击“Transport”后面的“选择...”,弹出“Http Transport”对话框,选择之前创建的HTTP Transport,单击“确定”。如下图所示。
在“WS代理服务”的编辑界面,单击“URI*”下面的“导入WSDL”链接,弹出"导入WSDL"对话框。 在“WSDL地址”的输入框中输入WSDL地址:http://127.0.0.1:8080/wsdemo/services/CustMgrService?wsdl (opens new window) ,然后单击后面的“导入”,Studio会自动导入WSDL的相关信息,全部选择操作列表中的操作,最后单击“完成”,完成WSDL的导入步骤,如下图所示。
在WS代理服务编辑界面中导入WSDL后,还需要设置“操作列表”中每个操作所对应的WS业务服务。单击“操作列表”中的操作“getCustByID”,会打开设置该操作相关信息的界面,如下图所示。
在“操作基本信息”区域,单击“服务名称”后面的“选择...”,弹出“选择业务服务操作”对话框,并选中“getCustByID”,单击“确定”,如下图所示。
参考步骤6和7关联操作列表中的“addCust”、“updateCust”和“deleteCust”操作。
单击工具栏的保存,完成WS代理服务的创建,如下图所示。
说明
- 如果需要将服务注册同步到Governor未归类接口中,此处代理服务的URI地址需改为服务注册中的接口服务编码,例如:/com.primeton.esb.provider.system.interface。并且保证域编码及应用系统编码已注册。
- 接口服务编码未注册的情况下,方可显示在未归类接口中。“服务注册”章节“关联注册”中会详细进行说明。
# 导出部署包
在资源管理器中,选中创建好的项目,鼠标右键单击“导出”,如下图所示。
在"导出"界面中,选择"ESB > 导出部署包",单击"下一步",如下图所示。
在弹出的"导出部署包"窗口中选择这两个Module,并指定"保存位置",将部署包命名为project.ecd,单击"下一步",如下图所示。
单击“完成”,提示“导出成功”,表明已经成功导出这两个Module,如下图所示。
# 部署
使用开发账户登录开发门户,单击左侧导航树上的 “模型部署 >新建部署” ,弹出 “新建部署” 界面。
单击“新建部署“,显示新建部署页面,选取文件。
点击上传,选择服务器,点击部署。
部署成功。
# 测试运行
通过SOAPUI发送SOAP请求,如下图所示。