我正在创建一个实现OPC连接的Camel,Spring引导应用程序。到目前为止,我已经成功地运行了从Eclipse milo github储存库获得的示例。
现在,我的任务是创建一个camel路由,该路由将连接到运行在不同机器上的opc服务器,从该服务器读取数据并存储在一个jms队列中。
到目前为止,我能够运行连接到服务器模拟器(TopServerV6)的BrowseNodeExample和ReadNodeExample。在示例代码中,当连接到服务器时,服务器的端点被指定为- "opc.tcp://127.0.0.1:49384/SWToolbox.TOPServer.V6"。
现在在骆驼路由代码段中,在.configure()部分,我应该在.from()部分中写些什么。这段代码是-
@Override
public void configure() throws Exception {
from("opc.tcp://127.0.0.1:49384/SWToolbox.TOPServer.V6")
.process(opcConnection)
.split(body().tokenize(";"))
.to(opcBean.getKarafQueue());
}在搜索解决方案时,我遇到了一个选项:milo-server:tcp://127.0.0.1:49384/SWToolbox.TOPServer.V6/nodeId=2&namespaceUri=http://examples.freeopcua.github.io。我试过了但没成功。在这两种情况下,我都会得到以下错误:
ResolveEndpointFailedException:未能解析终结点:(给定端点),原因是:没有找到方案中的组件: milo-server (或opc.tcp)
发布于 2017-12-11 10:44:37
发布于 2017-12-20 07:01:01
ResolveEndpointFailedException是相当清楚的,骆驼找不到成分。这意味着自动发现无法在META目录中加载定义。
你有没有检查过骆驼-米洛罐是否包含在你的脂肪罐/战争中?
作为一种解决办法,您可以通过
CamelContext context = new DefaultCamelContext();
context.addComponent("foo", new FooComponent(context));http://camel.apache.org/how-do-i-add-a-component.html
或者在你的情况下
@Override
public void configure() throws Exception {
getContext().addComponent("milo-server", new org.apache.camel.component.milo.server.MiloServerComponent());
from("milo-server:tcp://127.0.0.1:49384/SWToolbox.TOPServer.V6/nodeId=2&namespaceUri=http://examples.freeopcua.github.io")
...
}此外,请注意milo-server启动OPC UA服务器.正如我理解您的问题一样,您希望连接到OPC UA服务器。因此,您需要milo客户端组件。
https://stackoverflow.com/questions/47750998
复制相似问题