Camel Milo客户端连接Prosys OPC UA服务器KeyPair未配置异常解决
解决Camel Milo客户端「no KeyPair configured」异常并设置安全模式为None
问题原因
这个异常是因为Camel Milo客户端默认尝试使用安全连接(需要密钥对),但Prosys仿真服务器支持无安全模式连接,而你当前的配置未明确指定安全模式,导致客户端走安全连接流程却没有配置密钥对。
解决方案
1. 直接在路由URL中指定安全参数
在milo-client的URL里添加securityMode=None和securityPolicy=None参数,修改后的路由代码如下:
@Component public class CamelRoute extends RouteBuilder { @Override public void configure() throws Exception { from("milo-client:opc.tcp://localhost:53530/OPCUA/SimulationServer?node=RAW(ns=3;i=1001)&securityMode=None&securityPolicy=None") .to("log:bar2"); } }
2. 通过Spring Boot配置文件全局配置(可选)
如果需要统一配置所有Milo客户端连接的安全规则,可在application.yml中添加:
camel: component: milo: client: security-mode: None security-policy: None
3. 修复版本兼容性问题
你的依赖中Camel Spring Boot Starter是4.12.0,而Milo Starter是3.22.4,版本不匹配可能引发配置失效。建议统一Camel组件版本,将Milo Starter升级为4.12.0:
implementation 'org.apache.camel.springboot:camel-milo-starter:4.12.0'
验证
修改配置后重启应用,客户端即可正常连接Prosys仿真服务器并获取数据,和Prosys浏览器的连接行为保持一致。
内容的提问来源于stack exchange,提问作者leeviding1994
相关产品推荐
相关产品推荐

