java连接opc+ua_Java OPC-UA客户端Eclipse Milo端点URL更改为localhost

实现UA客户端时,这是一个非常常见的问题.

服务器最终负责您获取的端点的内容,并且您连接的端点(错误)配置为在端点URL中返回127.0.0.1.

您需要检查从服务器获得的端点,然后根据应用程序的性质,立即用新修复的EndpointDescriptions替换它们,其中包含您已修改的URL或让用户知道并首先请求他们获得许可.

无论哪种方式,您都需要创建一组新的EndpointDescriptions,在此之前您已经更正了URL,然后再继续创建OpcUaClient.

或者……您可以弄清楚如何正确配置服务器,以便返回包含可公开访问的主机名或IP地址的端点.

更新:

替换端点URL的代码可能是这样的一些变体:

private static EndpointDescription updateEndpointUrl(

EndpointDescription original, String hostname) throws URISyntaxException {

URI uri = new URI(original.getEndpointUrl()).parseServerAuthority();

String endpointUrl = String.format(

"%s://%s:%s%s",

uri.getScheme(),

hostname,

uri.getPort(),

uri.getPath()

);

return new EndpointDescription(

endpointUrl,

original.getServer(),

original.getServerCertificate(),

original.getSecurityMode(),

original.getSecurityPolicyUri(),

original.getUserIdentityTokens(),

original.getTransportProfileUri(),

original.getSecurityLevel()

);

}

警告:这在大多数情况下都适用,但是一个值得注意的情况是它不起作用的是远程端点URL包含URL主机名中不允许的字符(根据RFC),例如下划线(‘_’),不幸的是,在例如允许的情况下Windows计算机的主机名.因此,您可能需要使用一些其他方法来解析端点URL,而不是依赖URI类来执行此操作.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值