写入 Apache Camel OPC UA 服务器失败,但 returns 良好的 StatusCode

Write to Apache Camel OPC UA Server fails, but returns good StatusCode

我正在开发一个 Apache Camel 路由,它应该创建一个具有三个变量的 OPC UA 服务器。路由也应该初始化这三个值。

我尝试按照 Apache Camel 官方文档中描述的方式执行此操作。我可以使用任何 OPC UA 客户端连接到服务器并查看值。

这是我的路线代码:

<route id="opcuaserver">
  <from uri="timer://runOnce?repeatCount=1&amp;delay=5000"/>
  <to uri="milo-server:velocity"/>
  <to uri="milo-server:laufmeter"/>
  <to uri="milo-server:lfm_reset"/>

  <!-- INITIALIZE OPCUA SERVER VARIABLES -->
  <setHeader headerName="serverUrl">
    <simple>opc.tcp://NBTC363:12685</simple>
  </setHeader>
  <setBody>
    <simple>
      ns=2;s=items-velocity?0
      ns=2;s=items-laufmeter?0
      ns=2;s=items-lfm_reset?0
    </simple>
  </setBody>
  <bean ref="OpcuaBean" method="doWriteOneOrMany"/>
  <log message="${body}"/>
  <to uri="mock:opcuaInitResult"/>
</route>

header 和 body 中的信息由我的 bean 处理成与服务器的连接以及节点 ID 及其所需值的列表。然后使用此列表最终将所需的值写入服务器。写入过程完成后,bean 将生成的 StatusCodes 写入 camel 日志中。

我预期的结果是成功写入服务器,并带有如下 StatusCode 消息:

[StatusCode{name=Good, value=0, quality=good}

但实际上,服务器上的值仍然为 null,数据类型为 null,导致此 StatusCode:

[StatusCode{name=Good, value=0x00000000, quality=good}

我知道这表明我已经在客户端正确地完成了所有操作,所以我想知道我是否在 server-side 上做错了什么。 我按照 camel opc server 组件的例子,在这个问题上找不到任何对我有用的选项或参数。

问题是我没有正确使用 camel-milo 组件。显然你可以做到

<to uri="milo-server:yourTag"/>

写入您的 OPC UA 服务器。