【hyperledger-fabric】部署Java应用远程访问智能合约

发布时间:2024年01月08日

简介

首先是根据b站的视频 hyperledger-fabric【3】在 java 应用中访问合约 这里进行操作,本文章主要讲述的是这节视频中我遇到的问题,以及相关知识点的总结。

遇到的问题

问题1:git clone下载下来的代码发现与视频中的代码不一致的问题,启动项目报错error create bean

遇到这个问题,我的第一反应就是up主后续的代码也用的是这个,所以代码更新了。所以查阅了相关的资料,可以在gitte中下载历史版本的代码。可以参考 https://blog.csdn.net/weixin_45477146/article/details/133344063这篇文章中的额gitte篇,里面有讲述如何下载历史版本

但是这个问题治标不治本,总体来说呢,就是spring boot启动之后会去扫描配置文件,默认的配置文件是application.properties,但是由于代码更新了,会发现没有默认的配置文件,那么就需要手动去修改启动项的配置文件,否则的话,HyperLedgerFabricProperties类的值均为null了,那么就会error create bean。下面的图讲解一下出现问题的具体位置。
在这里插入图片描述
读取不到资源文件中的参数
在这里插入图片描述
解决办法 :点击-》editConfiguration
在这里插入图片描述
在activeProfile中点击输入配置文件的名字,由于这里是application-org1.properties,所以在这里的参数填写为org1即可。
在这里插入图片描述

问题2:使用POSTman测试的时候,录入一条数据成功,但是查询数据失败。

提前录入一条数据,再使用postman进行测试发现数据并没有录入成功,报错信息显示不存在这样的一条数据。
在这里插入图片描述
进入到linux服务器中,直接使用命令进行查询发现也是报错不存在这样一条数据。
在这里插入图片描述
此时对比视频中的代码发现问题在于evaluateTransaction方法和submitTransaction方法。如下图。
在这里插入图片描述
下载下来的代码和视频中的代码还是有些许不一样的地方,需要对每个方法对比视频中的进行修改,其中需要修改的是createCat,updateCat,deleteCatByKey三个方法。下面讲解一下evaluateTransaction和submitTransaction的区别。

  • evaluateTransaction:是获取到指定的结果,但是并不会提交到账本当中去,所以实际上根本没有对账本进行更改
  • submitTransaction:与上述不同,是提交到账本的,实际做出了更改的。与之同样的还有createTransaction方法。

综上所述就是使用到增删改的时候使用submitTransaction或者createTransaction。使用查询的时候使用evaluateTransaction方法。

文章来源:https://blog.csdn.net/weixin_45477146/article/details/135389109
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。