HTTP穿透场景:即HTTP代理服务直接关联一个HTTP业务服务,由业务服务完成所代理的服务请求。在HTTP Transport中配置代理服务的协议、端口号及连接参数,在HTTP Endpoint中配置业务服务对应的协议,所在的主机地址、端口号及连接参数。通过SOAP UI模拟一个HTTP调用者,用SOAP消息格式作为HTTP请求的消息体。
本节讲述了HTTP协议穿透场景的创建过程,包括创建ESB工程、创建HTTP协议相关的服务、并测试运行。通过本节你将了解到如下内容:
- 如何创建完整的HTTP协议穿透场景;
- 如何在Studio中测试运行开发的业务逻辑;
- 如何通过Server运行日志查看运行结果;
本节分为以下几个部分:
- 创建ESB工程
- 创建公共Module
- 创建HTTP Transport
- 创建HTTP Endpoint
- 创建业务Module
- 创建HTTP业务服务
- 创建HTTP代理服务
- 部署运行
示例如附件所示:http.zip
# 创建ESB工程
打开ESB Studio,在资源管理器中,点击右键,选择"创建 > ESB项目"菜单项,创建工程,如下图所示:
在工程创建向导中,填写工程的基本信息,如工程名称等,这里我们创建一个名为"http"的工程,如下图所示:
单击“下一步”,设置工程的引用库,这里使用缺省设置,如下图所示:
单击“完成”,完成创建工程。创建工程后,资源管理器如下图所示:
# 创建公共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协议。 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。
# 创建业务Module
在资源管理器中,选中创建好的项目,鼠标右键选择“创建 > 业务Module”,创建业务Module,如下图所示:
在“业务Module”对话框中,填写Module名称等信息,如下图所示:
业务Module相关填写项的填写规则如下:
参数 说明 Module名称 Module的名称。由数字、字母、下划线(_)组成。 显示名称 Module显示名称。由数字、字母、中文、点(.)、下划线(_)组成。 版本 由数字和点(.)组成。 单击“完成”,业务Module创建完成,如下图所示:
# 创建HTTP业务服务
在新建的业务Module“com.primeton.esb.http.restaurant”的“业务服务”上,鼠标右键选择“创建 > HTTP业务服务”,创建HTTP业务服务,如下图所示:
在打开的“创建HTTP业务服务”对话框中,输入类别信息,如下图所示。
单击“完成”,在打开的“HTTP业务服务”的编辑界面中,选择Endpoint为之前创建的HTTP Endpoint,填写URI信息,输入服务提供者的URI地址,例如:/httpService/ParmGbkHelloWorld?id=1&username=a,单击保存,如下图所示:
可根据需要,进行业务校验,点击选择,在弹框中选择指定的校验类,业务校验的作用是,根据需要对请求的结果进行校验,可判定为成功或失败,失败时自动重试
# 创建HTTP代理服务
在资源管理器中,在新建的业务Module“com.primeton.esb.http.restaurant”的“代理服务”上,鼠标右键选择“创建 > HTTP代理服务”,创建HTTP代理服务,如下图所示:
在打开的“创建HTTP代理服务”对话框中,输入类别信息,如下图所示:
单击“完成”,在打开的“HTTP代理服务”的编辑界面中,选择Transport,输入URI地址,选择关联服务类型和服务名称,单击保存,如下图所示:
# 部署运行
在资源管理器中,选中创建好的项目,鼠标右键单击“部署”,如下图所示:
部署完成后,ESB Studio将公共Module和业务Module部署Studio内置的ESB Server上,然后启动ESB Server,如下图所示:
ESB Server启动时,弹出启动服务器进度窗口,如下图所示:
在ESB Studio控制台,看到“ESB Server started successfully.”日志字样,表示ESB Server启动成功,如下图所示:
进入soap ui,创建rest project,访问ESB提供的HTTP服务,例如:http://192.168.16.85:9091/httptest,如下图所示:
双击服务下的request 1,进入服务调用界面,如下图所示: