第八課-Channel Study For Caller Custom JAR Lib

1.下载 apache-maven

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

设置系统环境变量:PATH

{@M99U}0O61YL`)H_HSD%TS

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

N$ODJ7(AZ4SKTX7`P6%3NU6

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开发相关插件

  需要安装的有如下:

JL5IPGTCJ(Q3{J[JL1D1SSK

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包插件源码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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)

1
2
3
4
5
6
7
8
9
10
11
12
13
// 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
posted @   潤沁網路大學  阅读(512)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
潤沁網路大學
点击右上角即可分享
微信分享提示