Thingsboard规则引擎RPC回复节点缺失SessionId报错求助
Thingsboard规则引擎RPC回复节点sessionId缺失报错问题
在仪表板使用旋钮组件时,生成的rpc getValue() 请求传递到规则引擎后,元数据中缺少sessionId,元数据详情如下:
{ "deviceName": "eui-70b3d52dd3007d4a", "deviceType": "vicki", "expirationTime": "1687854978319", "oneway": "false", "originServiceId": "tb-core-1", "persistent": "false", "requestUUID": "43c40612-9a0c-40e0-bac1-0e002b4cb247" }
收到的报错信息如下:
java.lang.RuntimeException: Session id is not present in the metadata! at org.thingsboard.rule.engine.rpc.TbSendRPCReplyNode.onMsg(TbSendRPCReplyNode.java:91) at org.thingsboard.server.actors.ruleChain.RuleNodeActorMessageProcessor.onRuleChainToRuleNodeMsg(RuleNodeActorMessageProcessor.java:168) at org.thingsboard.server.actors.ruleChain.RuleNodeActor.onRuleChainToRuleNodeMsg(RuleNodeActor.java:116) at org.thingsboard.server.actors.ruleChain.RuleNodeActor.doProcess(RuleNodeActor.java:75) at org.thingsboard.server.actors.service.ContextAwareActor.process(ContextAwareActor.java:56) at org.thingsboard.server.actors.TbActorMailbox.processMailbox(TbActorMailbox.java:170) at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
已通过以下转换代码适配RPC回复节点所需的requestId和serviceId格式,但仍无法获取sessionId,目前未在文档或论坛找到解决方案,恳请大家提供帮助:
msg = {"targetTemperature" : metadata.targetTemperature}; metadata.requestId = metadata.requestUUID; metadata.serviceId = metadata.originServiceId; //metadata.sessionId = "471482a4-1df5-4724-8819-18a3252ecf25"; return {msg: msg, msgType: msgType, metadata: metadata};
内容的提问来源于stack exchange,提问作者JustTesting
相关产品推荐
相关产品推荐

