JAVA SDK事件订阅接口无法获取数据
【问题分类】
- bug
- P2P网络相关(包含libp2p,liquid)
- 链账户身份与权限相关(证书问题、public、多签投票问题)
- 核心交易引擎相关(交易池、DAG)
- 共识相关
- 智能合约相关
- 存储相关
- SDK相关
- 长安链CMC工具
- 长安链管理台
- 长安链浏览器
- 长安链合约IDE
- 长安链web签名插件
- 跨链相关
- 轻节点相关
- 隐私计算相关
- 密码学相关
- 环境依赖
- 其他补充:
【问题描述】(请对问题进行描述,方便定位问题)
消息订阅接口,按着SDK文档进行了区块订阅、交易订阅、事件订阅接口,其中事件订阅接口没有显示订阅的数据; 过程方法:1.部署链是按着命令方式一路默认完成; 2.安装合约,通过JAVA sdk安装rust-fact-1.0.0.wasm文件,合法名是counter; 3.执行合约方法save,交易数据上链成功; 4.执行SDK中订阅接口方法,再一次进行发送交易数据上链,没有打印数据。 合约方法save 事件订阅接口
@test public void testSubscribeContractEvent() { StreamObserver<ResultOuterClass.SubscribeResult> responseObserver = new StreamObserver<ResultOuterClass.SubscribeResult>() { @Override public void onNext(ResultOuterClass.SubscribeResult result) { try { JSON.toJSONString(result); ResultOuterClass.ContractEventInfoList contract = ResultOuterClass.ContractEventInfoList.parseFrom(result.getData()); Assert.assertNotNull(contract); System.out.println("订阅到了"); System.out.println(contract); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } }
@Override
public void onError(Throwable throwable) {
// can add log here
System.out.println(throwable.getMessage());
}
@Override
public void onCompleted() {
// can add log here
}
};
try {
chainClient.subscribeContractEvent(-1,-1,"topic_vx", "counter", responseObserver);
Thread.sleep(500000000);
} catch (Exception e) {
e.printStackTrace();
Assert.fail(e.getMessage());
}
}
【系统信息】(请填写系统信息,方便定位问题)
链 2.2.1 和java SDK 2.2.0 都是按着文档进行的