欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI
欢迎使用普元文档库
选择业务Module下的中介服务,依次点击右键->创建->中介服务;
说明:
选择类别:可选可输,定义中介服务的类型,如:json、jsonToXml等;
文件名称:中介服务的名称,建议采用服务名命名加类别名称,如:Submit_json;
显示名称:建议与文件名称一致;
描述信息:默认缺省。建议对该中介服务进行备注描述;
选择对应业务Module下的Java,右键依次点击创建->类;
说明:
源文件夹(D):java类源文件存放路径,建议采用默认;
包:java类文件所在包名,建议采用中介服务目录;
名称:java类文件名称,建议遵循java类命名规范;
超类:默认java.lang.Object,可根据实际情况是否采用;
接口:默认空值,可根据实际情况是否采用;
编辑java类代码逻辑:
说明:
输入参数:方法输入参数类型必须含有:ITipMessagePayload类型;
输出参数:如果方法需要返回,则返回类型也必须为:ITipMessagePayload类型;
消息重构:通过inMessage.getMessagePayload()方法获取请求报文后,需要将报文转为String类型,然后进行处理,处理结束后,必须采用TipMessageBulider对消息进行重构。
打开创建的中介服务,点击中介流编辑器中的服务编排:
进入中介流编辑页面,根据实际业务逻辑从画板中拖拉相应控件,并进行流程编排;
说明:
如流程所示,消息进入中介流之后,先进行java方法处理,然后到达HTTP业务服务处理,业务服务处理结束,即中介服务流程结束。
双击中介流空白处,弹出中介流属性设置控件:
说明:
变量定义:辅助中介流消息处理,变量仅存在于中介流中;
参数配置表:默认输入输出参数类型均为:ITipMessagePayload;
双击java方法,弹出java方法属性设置:
说明:
选择java方法:选择要实现的逻辑java方法;
参数配置表:数据类型均为:ITipMessagePayload,参数值根据上一节点参数值进行设置。如:上一节点输出参数为:inMessage,则此处输入参数为inMessage;
选择业务服务图元节点,双击该图元,弹出业务服务属性设置控件:
说明:
业务服务:选择要关联的业务服务;
参数配置表:数据类型均为:ITipMessagePayload,参数值根据上一节点输出参数决定;
注意:中介服务编排中,中介服务是一个服务,服务可自身实现服务属性,也可通过调用第三方服务实现,所以对于中介服务的编排,可根据实际情况灵活变动,不必完全符合本示例;
中介服务开发完成后,需要代理服务进行关联,通过代理服务关联中介服务,从而实践中介服务的业务功能。打开代理服务:
说明:
关联服务类型:选择中介服务;
服务名称:选择相应的中介服务名称;
在开发阶段,ESB项目的java构建路径中添加第三方Jar,可以使Java程序编译通过;
在运行阶段,Server是从[ESB 安装后目录]\server\libs目录中调用第三方Jar。所以要将项目用到的第三方Jar设置在那个目录中才可以确保Server正常执行Java方法。
当项目中用到的第三方Jar,在[ESB 安装后目录]\server\libs目录中已存在,那么以ESB产品自带的Jar为主,不要覆盖或重复引入。
导出部署包时,为了防止项目引用的Jar与ESB Server中包含的Jar冲突,在部署部署包时不会加载其中的Jar包,所以导出jar包和应用配置时,请勿工程引用的jar。
public ITipMessagePayload String System.out.println("xml String System.out.println("xml TipMessageBuilder builder.copySystemHeaders(inMessage.getSystemHeaders()); builder.setMessageHeaders(inMessage.getMessageHeaders()); builder.setProtocolHeaders(inMessage.getProtocolHeaders()); return } |
public ITipMessagePayload String System.out.println("json JSONObject String xml = System.out.println("json TipMessageBuilder builder.copySystemHeaders(inMessage.getSystemHeaders()); builder.setMessageHeaders(inMessage.getMessageHeaders()); builder.setProtocolHeaders(inMessage.getProtocolHeaders()); return } |
public ITipMessagePayload String System.out.println("------------------------未转换前---------------------"); System.out.println("原始报文:"+ body); JSONObject jobj.put("password", "e717ebfd5271ea4a98bd38653c01113d"); System.out.println("------------------------转换开始---------------------"); System.out.println("转换后报文:"+jobj.toString()); System.out.println("------------------------转换结束---------------------");
//重新构建消息 TipMessageBuilder builder.copySystemHeaders(inMessage.getSystemHeaders()); builder.setMessageHeaders(inMessage.getMessageHeaders()); builder.setProtocolHeaders(inMessage.getProtocolHeaders()); return } |