【问题标题】:Exception "Wrapped java.lang.IllegalStateException: zip file closed " by using new com.mirth.connect.client.core.Client(url);使用新的 com.mirth.connect.client.core.Client(url) 出现异常“包装的 java.lang.IllegalStateException: zip 文件已关闭”;
【发布时间】:2021-06-30 13:55:46
【问题描述】:

我的代码在这里:

function MsgReceivedInPastHourchannelId,connectorID, status) {

 
var client = new com.mirth.connect.client.core.Client('https://127.0.0.1:443/');
 
try{
   var loginStatus = client.login('userID', 'psw');
} catch(ex) {
    client.close();
   throw 'Unable to log-on the server , Error: ' + ex.message;
}


 
var filter = new com.mirth.connect.model.filters.MessageFilter;
var calendar = java.util.Calendar;

var startDate = new calendar.getInstance();
var endDate = new calendar.getInstance();

..
.. logic to set start/end date
..

filter.setStartDate(startDate);
filter.setEndDate(endDate);
 

var statuses = new java.util.HashSet();
var Status = com.mirth.connect.donkey.model.message.Status;

var list = Lists.list().append(connectorID);


var metricStatus =  Status.SENT;

statuses.add(metricStatus);
filter.setStatuses(statuses);
filter.setIncludedMetaDataIds(list) ;

var nCount =client.getMessageCount(channelId, filter); 
client.close();
return nCount 
}

参考: Mirth getMessageCount using Javascript not working

大多数情况下它都可以正常工作,但它会在第 218 行随机抛出异常,这是

 var client = new com.mirth.connect.client.core.Client('https://127.0.0.1:443/')

任何人都有摆脱此类错误的经验或解决方案:

[2021-06-30 02:00:02,000]  ERROR  (com.mirth.connect.connectors.js.JavaScriptDispatcher:193):
 Error evaluating JavaScript Writer (JavaScript Writer "Submit Hx channel status to DataDog" on channel 1xxxxxxxxxxxxxxxx4).

com.mirth.connect.server.MirthJavascriptTransformerException: CHANNEL:
    ChannelStatus-Poller-CountCONNECTOR:
    Submit Hxchannel status to DataDogSCRIPT SOURCE:
    JavaScript WriterSOURCE CODE:
     218: var client = new com.mirth.connect.client.core.Client('https://127.0.0.1:443/') 221: // log on to the server222: 

try{LINE NUMBER:    218 DETAILS:


    Wrapped java.lang.IllegalStateException: zip file closed

    at a7fa25a9-af95-4410-bb4f-f4f08ae0badb:218 (MsgReceivedInPastHour)

    at a7fa25a9-af95-4410-bb4f-f4f08ae0badb:1013 (doScript)
    at a7fa25a9-af95-4410-bb4f-f4f08ae0badb:1033
    at com.mirth.connect.connectors.js.JavaScriptDispatcher$JavaScriptDispatcherTask.doCall(JavaScriptDispatcher.java:184)
    at com.mirth.connect.connectors.js.JavaScriptDispatcher$JavaScriptDispatcherTask.doCall(JavaScriptDispatcher.java:122)
    at com.mirth.connect.server.util.javascript.JavaScriptTask.call(JavaScriptTask.java:113)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)Caused by: java.lang.IllegalStateException: zip file closed
    at java.util.zip.ZipFile.ensureOpen(ZipFile.java:686)
    at java.util.zip.ZipFile.access$200(ZipFile.java:60)
    at java.util.zip.ZipFile$ZipEntryIterator.hasNext(ZipFile.java:508)
    at java.util.zip.ZipFile$ZipEntryIterator.hasMoreElements(ZipFile.java:503)
    at java.util.jar.JarFile$JarEntryIterator.hasNext(JarFile.java:253)
    at java.util.jar.JarFile$JarEntryIterator.hasMoreElements(JarFile.java:262)
    at org.reflections.vfs.ZipDir$1$1.computeNext(ZipDir.java:30)
    at org.reflections.vfs.ZipDir$1$1.computeNext(ZipDir.java:26)
    at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:141)
    at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:136)
    at org.reflections.Reflections.scan(Reflections.java:240)
    at org.reflections.Reflections.scan(Reflections.java:204)
    at org.reflections.Reflections.<init>(Reflections.java:129)
    at org.reflections.Reflections.<init>(Reflections.java:170)
    at org.reflections.Reflections.<init>(Reflections.java:143)
    at com.mirth.connect.client.core.Client.<init>(Client.java:176)
    at com.mirth.connect.client.core.Client.<init>(Client.java:143)
    at sun.reflect.GeneratedConstructorAccessor159.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.mozilla.javascript.MemberBox.newInstance(MemberBox.java:159)
    at org.mozilla.javascript.NativeJavaClass.constructInternal(NativeJavaClass.java:266)
    at org.mozilla.javascript.NativeJavaClass.constructSpecific(NativeJavaClass.java:205)
    at org.mozilla.javascript.NativeJavaClass.construct(NativeJavaClass.java:166)
    at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1525)
    at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
    at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:405)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3508)
    at org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:120)
    at com.mirth.connect.server.util.javascript.JavaScriptTask.executeScript(JavaScriptTask.java:150)
    at com.mirth.connect.connectors.js.JavaScriptDispatcher$JavaScriptDispatcherTask.doCall(JavaScriptDispatcher.java:149)
    ... 6 more

【问题讨论】:

  • javajavascript 是非常不同的东西
  • function MsgReceivedInPastHourchannelId,connectorID, status) { 您能否将正确的、可编译的代码放入您的问题中?
  • 其实这是 MirthConnect 环境中的 Javascript 代码(由 Rhino 引擎驱动),这就是为什么 javascript 代码可以重用 Java Jar。这个函数不是Java代码。
  • 请关闭此主题,在 Mirth 连接器管理环境中无法解决此问题,为了解决此问题,我使用了 DB 查询。
  • @vibin tkx 获取信息,它实际上是通道级别的计数,我需要的是连接器级别,问题通过直接访问数据库解决。

标签: java mirth


【解决方案1】:

在 Mirth 连接器管理环境中无法解决问题,为了解决这个问题,我使用了 DB 查询。

去Mirth DB,你可以找到相关的表,查询这样的DB更安全。

不调用的原因, 来自 Mirth slack 通用频道的回答, “当使用 Client 类时,你几乎是在循环回服务器,因为无论如何所有代码都是在服务器上执行的。”

所以在 Mirth 代码中总是没有 com.mirth.connect.client.core.Client 类。

问题已关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 2013-09-03
    • 2020-07-16
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    相关资源
    最近更新 更多