1.下载 apache-maven

推荐3.6.3版本:https://maven.apache.org/download.cgi

设置系统环境变量:PATH

装好后在命令行验证:mvn -v

Maven中央仓库repo.maven.apache.org下载慢问题

编辑D:\java\apache-maven-3.6.3\conf目录下setting.xml文件,加入阿里云的源:

<mirrors>
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>

2.安装微软开源的Vistual Studio Code IDE集成开发环境

下载URL地址:https://code.visualstudio.com/

3.安装微软官方支持的Azul OpenJDK11

下载URL地址:https://www.azul.com/downloads/azure-only/zulu/?version=java-11-lts&os=windows&architecture=x86-64-bit&package=jdk

4.安装vs code的Java开发相关插件

  需要安装的有如下:

5.创建maven项目

  • 按下 Ctrl+Shift+P 打开命令面板,输入java,依次选择Create Java Project、Maven;接着选择基于 maven-archetype-quickstart 创建   
  • 在弹出的对话框中选择一个生成项目的目录
  • 选择完成后,会开始项目的生成,期间需要在终端中填入必要的信息。groupId组织名(java包名)、artifactId项目名、version版本号、package打包后jar的名称

如下系列图所示:因为Visual Studio Code需要JDK11;但是Mirth Connect只能运行于Oracle JDK8环境下,故在VS Code选中项目名plug,点击‘Setup JDKS for Project and VS Code java’设置不同的JDK环境:

安装微软官方支持的Azul OpenJDK11是因为Visual Studio Code调试java代码需要这个运行环境;

安装Oracle官方JDK8是因为Mirth Connect服务运行在JDK8下,自定义扩展jar包的插件开发必须和MC Server使用的SDK一致。

  (如上图所示:第一步,选中自定义扩展插件plug工程;第二步,Java Overview页签中点击‘Setup JDKS for Project and VS Code java’设置不同的JDK环境)

(如上图所示:第一步,选中自定义插件plug工程;第二步,修改pol.xml文件使用1.8版本JDK;第三步,设置plug插件工程project JDKs为JAVA-SE1.8 的JDK环境)

(如上图所示:第一步,选中自定义插件plug工程;第二步,设置VS Code IDE开发工具Java Tooling Runtime设置为JDK11环境)

(如上图所示:第一步,选中自定义插件plug工程;第二步,确认已经安装了JDK8和JDK11的环境)

6.修改plug插件工程app类源码并调试

  创建完成后,打开目录即可

  Ctrl+Shift+D可打开调试面板,进行调试;

本示例自定义Jar包插件源码如下:

package eohagedu;

/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
public String show( String arg )
{
return arg;
}
public static String returnSomething() {
return "Hello, World!";
}
public int calAdd( int[] args )
{
int c=args[0]+args[1];
return c;
}
}

7.打开Mirth Connect  3.10.1驾驶舱,加载自定义扩展Jar包目录

选择左侧‘Settings’菜单,点击‘Resources’页签,指定第6步骤编译出的自定义Jar包插件目录为D:\Mirth\jarTest;然后点击‘Reload Resource’菜单完成自定义插件导入

8.新建测试Mirth Connect信道

9.测试自定义扩展Jar包调用,在源端的转换中添加调用自定义Jar包的js脚本

(如上图所示:分别调用静态方法returnSomething、字符串实例方法show、数组参数实例方法calAdd)

// create new package root using specified classloader
var iso = Packages(contextFactory.getIsolatedClassLoader());
// access library using isolated ClassLoader
var myLib = new iso.eohagedu.App();
//static Func Caller
logger.info(iso.eohagedu.App.returnSomething());
//Instance string Func Caller
logger.info(myLib.show('123'));
//Instance Array Func Caller
var A=[1,2]
var B=myLib.calAdd(A);
logger.info(parseInt(B));
logger.info(B===3);

10.发布信道测试

大功告成!!!

本课程总结:

1.Mirth Connect 信道调用自定义Jar包:可以指定任意目录作为插件目录,不需要重启MC服务即可直接在信道中使用。

2.信道中指定依赖时,选中所加载的自定义Jar包目录,此信道即可使用此扩展自定义jar包

3.通过js脚本调用java自定义jar包,扩展了Mirth Connect系统集成与数据交换平台的功能

4.强大如斯的Mirth Connect平台,您有什么理由不好好研究呢?

欢迎大家持续关注潤沁網路大學本系列Mirth Connect课程的教学

 本节课所参考网志索引:
https://www.mirthcorp.com/community/wiki/display/mirth/How+to+create+and+invoke+custom+Java+code+in+Mirth+Connect
https://github.com/nextgenhealthcare/connect/issues/4324
https://forums.mirthproject.io/forum/mirth-connect/support/175423-javascript-error-using-apache-pdfbox-and-fontbox
https://forums.mirthproject.io/forum/mirth-connect/support/18965-channel-classloader-isolation

第八課-Channel Study For Caller Custom JAR Lib的更多相关文章

  1. Adding a custom jar as a maven dependency

    Using maven in a Java project is great. It manages builds (as customized as you may need), execution ...

  2. How to include custom library into maven local repository?--转

    原文地址:https://www.mkyong.com/maven/how-to-include-library-manully-into-maven-local-repository/ There ...

  3. Java 8新特性之 Nashorn(八恶人-6)

    Joe Gage 盖奇·乔 “First time in my life I made a pretty penny.And, figured I'd come home and spend time ...

  4. 传智博客(JavaWeb方面的所有知识)听课记录(经典)

    一.       JavaWeb基础 第一天: 1.Eclipse详解: (1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合.高的JRE版本 ...

  5. The Go Programming Language. Notes.

    Contents Tutorial Hello, World Command-Line Arguments Finding Duplicate Lines A Web Server Loose End ...

  6. [置顶] Android开发百科全书

    友情提示根据目录 快速查找问题 %1$s %1$d Android string 1.整型,比如"我今年23岁了",这个23是整型的.在string.xml中可以这样写,<s ...

  7. Practical Go: Real world advice for writing maintainable Go programs

    转自:https://dave.cheney.net/practical-go/presentations/qcon-china.html?from=timeline   1. Guiding pri ...

  8. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw ...

  9. maven的使用--初级篇

    一.前言         早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档.发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基 ...

  10. 学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)

    一.前言         早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档.发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基 ...

随机推荐

  1. arch安装xfce4的时候,出现无法设置开机启动的问题

    sudo systemctl enable lightdm   Failed to enable unit: File /etc/systemd/system/display-manager.serv ...

  2. ACER 宏碁 笔记本无法进入 grub 引导 + 安全启动失败(security boot fail ) 解决办法

    主要介绍让BIOS首先引导grub的方法 加一点:添加完新的启动选项以后,如果看不到添加的启动项,就先保存重启,再进 BIOS 就可以看到了 我是宏碁的笔记本,装了双系统.之前无意间进了一次 BIOS ...

  3. stm32L4xx串口日志配置解析

    前言: st这两年推出了一款超低功耗的芯片,stm32l4xx系列,该系列芯片有着功耗低,尺寸小等特点,非常适合应用在可穿戴式设备. 团队在这一领域深耕,所以不可避免的要用到这款芯片,这里就针对该芯片 ...

  4. 用于演示文稿的新 Dapr 幻灯片

    Dapr 官方博客上(https://blog.dapr.io/posts/2024/03/10/new-dapr-slide-deck-for-your-presentations/)发布了一个新的 ...

  5. System.out.print重定向到文件实例

    该代码可以实现让System.out.print输出内容不再打印到控制台,而是输出到指定的文件中 <strong><span style="font-size:24px;& ...

  6. 探讨三维模型OBJ格式轻量化在三维展示效果上的重要性

    探讨三维模型OBJ格式轻量化在三维展示效果上的重要性 三维模型的OBJ格式轻量化在三维展示效果方面具有重要性.以下是对三维模型OBJ格式轻量化在三维展示效果上的重要性进行分析: 1.提高渲染性能:原始 ...

  7. 关于三维模型OBJ格式轻量化压缩必要性探讨

    关于三维模型OBJ格式轻量化压缩必要性探讨 三维模型的OBJ格式轻量化压缩在当前的计算机图形学和虚拟现实应用中具有重要的必要性.以下是对三维模型OBJ格式轻量化压缩必要性的分析: 1.提高加载和传输效 ...

  8. 记录--JS-SDK页面打开提示realAuthUrl错误

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 测试环境好好地功能,上了生产,莫名其妙报错,开始以为是没有设置Js安全接口域名,结果让相应人员一查,已经设置了相应的域名,再看下公众号内的 ...

  9. Puppet 2024年度报告:平台工程发掘 DevOps 无限潜质

    Puppet 于本周发布了一份2024年的 DevOps 现状报告 The State of DevOps Report: The Evolution of Platform Engineering. ...

  10. 区别对比 Python、Perl、VB、Ruby、C/C++、C# .Net、PHP、Java… 等多编程语言

    1. 编程语言类型:首先,Python.C/C++.Java 都是强类型的编程语言.强类型的编程语言定义如下: 强类型的编程语言是一种强制类型定义的编程语言,即一旦某一个变量被定义类型,如果不经强制转 ...