简体   繁体   English

NextGen (Mirth) Connect & MongoDB java 驱动程序错误

[英]NextGen (Mirth) Connect & MongoDB java driver error

I am trying to configure Mirth Connect Server 3.10.1 (Java version: 1.8.0_181), to write FHIR JSON docs to MongoDB.我正在尝试配置 Mirth Connect Server 3.10.1(Java 版本:1.8.0_181),将 FHIR JSON 文档写入 MongoDB。 I've followed instructions from this post and have these drivers in custom-lib/我已按照这篇文章中的说明进行操作,并将这些驱动程序放在custom-lib/

  • bson-4.2.0.jar bson-4.2.0.jar
  • mongodb-driver-3.9.1.jar mongodb-driver-3.9.1.jar
  • mongodb-driver-core-4.2.0.jar mongodb-driver-core-4.2.0.jar

My conf/dbdrivers.xml has an entry like this,我的conf/dbdrivers.xml有这样的条目,

<driver class"org.mongodb.Driver" name="MongoDB" template="mongodb://localhost:27017/" selectLimit="" />

I've setup my Channel Destination with a JavaScript Writer Connector Type and used this JS,我已经使用JavaScript Writer器连接器类型设置了我的通道目标并使用了这个 JS,

var mongoClient = new Packages.com.mongodb.MongoClient("localhost", 27017);
var database = mongoClient.getDatabase("synthea");
var collection = database.getCollection("synthea");                   
var jsonDoc = JSON.stringify(connectorMessage.getEncodedData(msg));
var doc = Packages.org.bson.Document.parse(jsonDoc);

collection.insertOne(doc);
var myDoc = collection.find().first();
logger.debug(myDoc.toJson());

mongoClient.close();

return;

When I deploy the Channel, I am getting this error.当我部署频道时,我收到了这个错误。

Can anyone tell me what this means?谁能告诉我这是什么意思?

Any help or guidance very much (and humbly) appreciated.非常感谢任何帮助或指导(谦虚地)。

JavaScript Writer error
ERROR MESSAGE: Error evaluating JavaScript Writer
java.lang.NoSuchMethodError: 'com.mongodb.connection.ConnectionPoolSettings$Builder com.mongodb.connection.ConnectionPoolSettings$Builder.maxWaitQueueSize(int)'
    at com.mongodb.MongoClientOptions.<init>(MongoClientOptions.java:149)
    at com.mongodb.MongoClientOptions.<init>(MongoClientOptions.java:57)
    at com.mongodb.MongoClientOptions$Builder.build(MongoClientOptions.java:1612)
    at com.mongodb.MongoClient.<init>(MongoClient.java:155)
    at com.mongodb.MongoClient.<init>(MongoClient.java:145)
    at jdk.internal.reflect.GeneratedConstructorAccessor135.newInstance(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at org.mozilla.javascript.MemberBox.newInstance(MemberBox.java:171)
    at org.mozilla.javascript.NativeJavaClass.constructInternal(NativeJavaClass.java:268)
    at org.mozilla.javascript.NativeJavaClass.constructSpecific(NativeJavaClass.java:207)
    at org.mozilla.javascript.NativeJavaClass.construct(NativeJavaClass.java:169)
    at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1713)
    at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:1009)
    at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:412)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3545)
    at org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:121)
    at com.mirth.connect.server.util.javascript.JavaScriptTask.executeScript(JavaScriptTask.java:150)
    at com.mirth.connect.connectors.js.JavaScriptDispatcher$JavaScriptDispatcherTask.doCall(JavaScriptDispatcher.java:230)
    at com.mirth.connect.connectors.js.JavaScriptDispatcher$JavaScriptDispatcherTask.doCall(JavaScriptDispatcher.java:190)
    at com.mirth.connect.server.util.javascript.JavaScriptTask.call(JavaScriptTask.java:113)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:832)

I have a feeling this is due to the mismatched driver versions.我感觉这是由于驱动程序版本不匹配造成的。 Version 3.9 has the method indicated in the error, but 4.2 does not. 3.9版有错误中指出的方法,但4.2版没有。

Once you get that sorted out, you are going to want to change this line一旦你把它整理好,你就会想要改变这条线

var jsonDoc = JSON.stringify(connectorMessage.getEncodedData(msg));

to this对此

var jsonDoc = connectorMessage.getEncodedData();

msg does not exist in a Javascript Writer, and connectorMessage.getEncodedData() does not take any parameters and returns a String. Javascript Writer 中不存在msgconnectorMessage.getEncodedData()不接受任何参数并返回一个字符串。 connectorMessage is an instance of ImmutableConnectorMessage from the Mirth User API. connectorMessage是来自 Mirth 用户 API 的ImmutableConnectorMessage的一个实例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM