根据文档,从JMS
队列中读取消息的无限等待是通过指定来实现的"timeout: 0"
。使用非零值调用可以WL.Server.readSingleJMSMessage
正常工作,因为零超时函数会立即返回,我可以找到日志条目:
com.worklight.integration.model.InvocationContext E FWLSE0099E: An error occurred while invoking procedure jms_topic/JMSConsumerFWLSE0100E: parameters:{ "arr": [ { "destination": "myqueue", "singleMessage": true, "timeout": 0.0 }]} java.lang.Double cannot be cast to java.lang.Integer FWLSE0101E: Caused by: null
对于像记录的参数这样的正值"timeout: 1000"
是正确的,也是“超时:1000”。对于“超时:0”,记录的值是浮点数,"timeout: 0.0"
在 Java 端是意外的。
我看不到强制积分零作为文字的方法,我试过了,"timeout: 0x0"
或者"timeout: parseInt(0)"
问题似乎出在JS-Java
翻译中。可惜这样的基本边界条件在发布前没有经过测试。