第七課-Channel Study For HTTP Listener & Web Service Sender Intercommunicates Response Handler
示例说明:
系统A发送XML格式患者信息到Mirth的Source端HTTP Listener,完成患者信息入库逻辑;然后Mirth的Destinations端Web Service Sender调用系统B开放的C#实现的Webservice接口服务完成患者信息的查询并把响应结果返回给最初调用者系统A。这个数据交互通讯过程涉及:系统A---->Mirth---->系统B---->Mirth---->系统A
多信道交互响应消息处理步骤:

新建信道并设置源端输入输出参数格式、目的端输入输出格式、响应输入输出参数格式

设置源端HTTP Listener参数

设置源端转换规则;源端新建JS转换步骤,在‘输入消息模板’录入如下XML消息模板并添加如下js脚本完成患者信息入库逻辑
<patient>
<pid>110</pid>
<name>撰獲濟</name>
<sex>M</sex>
<dob>19650108</dob>
<addr>臺灣大學</addr>
<ssn>33661489</ssn>
<status>0</status>
</patient>
var dbConn;
try {
var pid=msg['pid'].toString();
var name=msg['name'].toString();
var sex=msg['sex'].toString();
var dob=msg['dob'].toString();
var addr=msg['addr'].toString();
var ssn=msg['ssn'].toString();
channelMap.put('pid',pid);
dbConn=DatabaseConnectionFactory.createDatabaseConnection('org.mariadb.jdbc.Driver', 'jdbc:mariadb://127.0.0.1:3306/mirthtestdb', 'root', '125353Ct');
var result=dbConn.executeCachedQuery("select count(*) from patient WHERE pid = "+pid);
result.next();
var icount = result.getInt(1);
if(icount==0)
{
var expression = "INSERT INTO patient (pid,name,sex,dob,addr,ssn) VALUES (?,?,?,?,?,?)";
var paramList=new Array(pid,name,sex,dob,addr,ssn);
icount = dbConn.executeUpdate(expression, paramList);
channelMap.put('Ret','1');
}else{
channelMap.put('Ret','0');
}
result.close();
} finally {
if (dbConn) {
dbConn.close();
}
}

设置目的端Web Service Sender参数

输入C# Webservice接口响应消息作为响应‘输入参数模板’,对返回值映射到Response Map的自定义变量responseAck中
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<acceptMessageResponse xmlns="http://tempuri.org/">
<acceptMessageResult>string</acceptMessageResult>
</acceptMessageResponse>
</soap:Body>
</soap:Envelope>
var mapping;
try {
mapping = msg.*::['Body'].*::['acceptMessageResponse'].*::['acceptMessageResult'].toString();
} catch (e) {
mapping = '';
}
responseMap.put('responseAck', validate(mapping, '', new Array()));

运行C#版HTTP Sender,进行如上测试,成功获取响应,验证Mirth Connect 的HTTP Listener源通道、Web Service Sender目标通道与C# Webservice接口服务双向交互通讯OK!
本节课知识点总结:
1.Mirth调用外部C#的Webservice接口并获取返回值
2.响应消息通过responseMap变量返回
3.响应消息Raw格式返回C#Webservice的原始格式返回值
第七課-Channel Study For HTTP Listener & Web Service Sender Intercommunicates Response Handler的更多相关文章
- 转:Java NIO系列教程(七) Socket Channel
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道.可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器. ...
- Listener(Web监听器、活化、钝化)
Web监听器 总共有8个 划分成三种类型 定义一个类,实现接口 注册 | 配置监听器 监听三个作用域创建和销毁 request -httpServletRequest session -httpSes ...
- soapui中文操作手册(七)----Web Service Sample Project
REST推理 这份简短的教程将引导您完成架构推断功能. 我们将创建一个新的项目,并添加一个REST服务,而初始WADL文件启动了. 发送请求后,我们就可以使用响应来构建我们的架构. 演示请求 为了演示 ...
- JBoss 系列七十:一个简单的 CDI Web 应用
概述 本文通过一个简单的 CDI Web 应用演示dependency injection, scope, qualifiers 以及EL整合.应用部署完成后我们可以通过http://localhos ...
- Web Service进阶(七)浅谈SOAP Webservice和RESTful Webservice
浅谈SOAP Webservice和RESTful Webservice REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性.RE ...
- Spring学习(七)——开发Web Service的几种方式
本文作者在学习使用Java开发Web Service(不包括Restful)时,由于不知道Java有这么多框架支持开发Web Service一度陷入迷惘,不知道这些框架各有 什么不同,各有什么优缺点. ...
- javaWeb核心技术第七篇之HTTP、Tomcat、Servlet、Request和Response
- Web服务器 - 概念: - web资源: "英文直译"网"的意思 资源:一切数据文件 web资源:通过网络可以访问到的资源,通常指的是一切放在服务器上的文件&quo ...
- Mirth Connect的简单使用
第一步: 切换到Channels界面,右键点击New Channel 第二步 : 上面是设置一些通道信息. 其中summary(概要) 界面主要包含 通道名称,数据类型,依赖,通道初始状态,附件(是否 ...
- Oracle Net Listener Parameters (listener.ora)(转)
12/20 7 Oracle Net Listener Parameters (listener.ora) This chapter provides a complete listing of th ...
- Webservice实践(七)CXF 与Spring结合+tomcat发布
上一节介绍了如何使用CXF 来发布服务,但是没有介绍使用web 容器来发布,很多项目需要用tomcat 这样的容器来发布.另外本节将介绍CXF 与spring 结合的方法. 一 目标: 1.利用spi ...
随机推荐
- base64 转文件上传
// 将base64转换为blob dataURLtoBlob (dataurl) { let arr = dataurl.split(',') let mime = arr[0].match(/:( ...
- arch安装deep-wine-wechat时,跳过md5检测的方法
yay -S --mflags --skipinteg deepin-wine-wechat 这条命令是的我们跳过了md5检测! 微信的安装位置:C:\Program Files\Tencent\We ...
- 阿里云Python UDP Server和client基础教程
壹: socket通信是常用的一种通信方式,熟练掌握,快速的入戏,是一个程序员必备的素质. 贰: 注意:udp和tcp的套接字: 服务端代码: #!/usr/bin/env python3 # -*- ...
- 恒玄科技BES250解决方案之双耳链接调试总结和源码分析
一 前言 bes2500芯片在tws耳机应用十分广泛,该芯片有着资源强大,音质好,大厂背书等特色.吸引了不少粉丝跟随. 最近在调试该芯片的tws配对流程,花费了一些时间,踩了一些坑,这里做一个总结和备 ...
- 使用Servlet实现文件下载
一位朋友最近在学习JavaWeb开发,开始学习文件下载操作,他自己尝试着去网上看一些教程,总的来说也不是太了解,就让我和他说说,如何实现文件下载功能.我和他说了一下大致的思路,主要分为前端和后端两部分 ...
- 3DCAT携手华为,打造XR虚拟仿真实训实时云渲染解决方案
2023年5月8日-9日,以 ''因聚而生 众志有为'' 为主题的 ''华为中国合作伙伴大会2023'' 在深圳国际会展中心隆重举行.本次大会汇聚了ICT产业界的广大新老伙伴朋友,共同探讨数字化转型的 ...
- 专访OV季军|毕业转为freelancer,他如何斩获大量CG奖项?
"新锐先锋,玩转未来"--首届实时渲染3D动画创作大赛由瑞云科技主办,英伟达.青椒云.3DCAT实时渲染云协办,戴尔科技集团.Reallusion.英迈.万生华态.D5渲染器.中视 ...
- 04.Android之动画问题
目录介绍 4.0.0.1 Android中有哪几种类型的动画,属性动画和补间动画有何区别?补间动画和属性动画常用的有哪些? 4.0.0.2 View动画为何不能真正改变View的位置?而属性动画为何可 ...
- Vue中点击按钮回到顶部(滚动效果)
页面滚动到一定位置时,出现回到顶部按钮 代码如下HTML <div class="footer"> <div class="gotop" v- ...
- java基础 韩顺平老师的 面向对象(高级) 自己记的部分笔记
373,类变量引出 代码就提到了问题分析里的3点 package com.hspedu.static_; public class ChildGame { public static void mai ...