我有一个外部OPC UA服务器,我想从中读取数据。我使用用户名和密码身份验证,因此我的客户端初始化如下:
public class MyClient {
// ...
public MyClient() throws Exception {
EndpointDescription[] endpoints =
UaTcpStackClient.getEndpoints(OPCConstants.OPC_SERVER_URI).get();
// using the first endpoint
EndpointDescription endpoint = endpoints[0];
// client configuration
OpcUaClientConfig config = OpcUaClientConfig.builder()
.setApplicationName(LocalizedText.english("Example Client"))
.setApplicationUri(String.format("some:example-client:%s",
UUID.randomUUID()))
.setIdentityProvider(new UsernameProvider(USERNAME, PWD))
.setEndpoint(endpoint)
.build();
}
}
客户的要求如下:
public CompletableFuture<DataValue> getData(NodeId nodeId) {
LOGGER.debug("Sending request");
return client.readValue(60000000.0, TimestampsToReturn.Server, nodeId);
}
初始化客户端并将其连接到服务器后,我从main方法调用此请求:
MyClient client = new MyClient();
NodeId requestedData = new NodeId(DATA_ID, DATA_KEY);
LOGGER.info("Sending synchronous TestStackRequest NodeId={}",
requestedData);
client.connect();
DataValue response = client.getData(requestedData).get();
LOGGER.info("Received response value={}", response.getValue());
client.disconnect();
但是,此代码不起作用(尝试从服务器读取信息时会话关闭)。我得到以下输出:
Bad_SessionClosed(CompletableFuture.java:1999)
atcom.mycompany.opcua.participants.Communications icationMain.testClient(Communications icationMain.java:70)
atcom.mycompany.opcua.participants.Communications icationMain.main(Communications icationMain.java:51)
由以下原因引起:UaException: status=2018-04-12 17:43:28,212,消息=会话被客户端关闭。
atorg.eclipse.milo.opcua.stack.core.util.FutureUtils.failedUaFuture(FutureUtils.java:100)
atorg.eclipse.milo.opcua.stack.core.util.FutureUtils.failedUaFuture(FutureUtils.java:88)
atorg.eclipse.milo.opcua.sdk.client.session.states.Inactive。(我nactive.java:28)
atorg.eclipse.milo.opcua.sdk.client.session.SessionFsm。(SessionFsm.java:69)
atorg.eclipse.milo.opcua.sdk.client.OpcUaClient。(OpcUaClient.java:159)java.base/java.util.concurrent.CompletableFuture.getINFO---[NonceUtilSecureRandom]NonceUtil:SecureRandom在0ms中播种。
在com上。我的公司。opcua。参与者。我的客户。(MyClient.java:112)
在com上。我的公司。opcua。参与者。沟通主管。testClient(CommunicationMain.java:60)
。。。还有1个
我使用Eclipse milo 0.2.1作为OPC UA库。
你能告诉我什么会导致这个问题,以及如何解决它吗?这可能是与此相关的比赛条件吗?
我可以使用其他客户端(UaExpert)连接到同一台服务器。
提前谢谢你。
您正在进行的所有调用(connect()
、disconnect()
、和readValues()
)都是异步的,因此这里可能发生的情况是,您在尝试读取时没有连接。
在进入下一步之前,请确保为这些示例屏蔽结果。(您没有在connect()
上执行此操作)
问题内容: 我使用Apache HTTP Client进行HTTPPost调用,然后尝试使用Jackson响应创建一个对象。这是我的代码: 方法makePublisherApiCall()将在一个循环中被调用,该循环运行100次。当我取消注释该行时,基本上会出现问题: 取消注释后,我得到异常: 否则,它将正常工作。有人可以让我知道我在做什么错。 问题答案: 什么是与响应实体呢?我会怀疑它正在消耗实
ap.getSessionData(OPTION | keys | key, CALLBACK) 读取会话级数据。可用于页面间传递数据。 可直接传入一个数组作为 OPTION.keys,或直接传入一个字符串,作为 OPTION.keys 数组中的某一个 key。 OPTION 参数说明 名称 类型 必填 描述 keys String Array 是 要读取的数据的 key CALLBACK 参数说
问题内容: 我通常会在Chrome的开发工具面板中调试Selenium测试。但是,在升级了操作系统(Ubuntu Linux)之后,我的E2E测试完全失败了:Chrome并没有打开第一页,而是处于空闲状态,仅显示空白页。最终,我升级了ChromeDriver,现在测试可以再次使用。但是,有了这个新的Chrome版本(在操作系统升级之后)和这个新的ChromeDriver,开发工具窗口就会出现一个奇
我正在使用Maven创建一个Selenium项目,其中我试图从Excel文件(xlsx)中读取“username”和“password”。 这是密码- 我得到的错误在这一行: Driver.FindElement(By.XPath(“//input[@type='text']”)).SendKeys(Sheet.GetRow(i).GetCell(j).GetStringCellValue());
问题内容: 我正在尝试从golang中的SSH会话读取数据。我编写了以下函数来尝试实现此目的。 我遇到了一个问题,尝试从stdout读取内容,它为空,导致程序锁定。为了解决这个问题,我编写了BufferSocketData,它检查ReadDataFromSocket应该附加到的通道,如果它有数据,则将其添加到缓冲区。如果1秒钟后仍未收到任何数据,它将停止读取。 但是,这不能正常工作,我不确定为什么
错误发生在我试图保存文档时,在第65行。 我会收到以下错误消息: