首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行yo hyperledger-composer无法正确导入模型。

执行yo hyperledger-composer无法正确导入模型。
EN

Stack Overflow用户
提问于 2017-08-30 12:30:33
回答 2查看 258关注 0票数 0

构建一个简单的基于超级分类器的应用程序,并使用类似于车辆生命周期示例代码中的模型定义。具体来说,我有两个模型文件: base.cto

代码语言:javascript
复制
namespace composer.base

abstract participant Member {
  o String companyName
}

和sample.cto (部分上市)

代码语言:javascript
复制
namespace org.acme.Z2BTestNetwork
import composer.base.*
import composer.events.*

participant Buyer identified by buyerID extends Member{
    o String buyerID
}
participant Seller identified by sellerID extends Member{
    o String sellerID
}

asset Order identified by orderNumber {
    o String orderNumber
    o String[] items

我能够使用这种结构成功地构建网络并测试网络,无论是使用composer -rest服务器服务还是基于Bluemix的composer。然而,由溜溜球生成的应用程序无法找到“成员”,显然在生成和构建过程中没有导入base.cto文件。yo为这个网络的模型文件夹中的每个文件生成一个.ts文件。对应于“.ts”的sample.cto文件包含以下内容,但是它缺少了base.cto文件中的抽象定义(该文件位于另一个.ts文件中),并且缺少到该文件的任何链接。

代码语言:javascript
复制
import {Asset} from './org.hyperledger.composer.system';
import {Participant} from './org.hyperledger.composer.system';
import {Transaction} from './org.hyperledger.composer.system';
import {Event} from './org.hyperledger.composer.system';
// export namespace org.acme.Z2BTestNetwork{
   export class Buyer extends Member {
      buyerID: string;
   }
   export class Seller extends Member {
      sellerID: string;
   }
   export class Shipper extends Member {
      shipperID: string;
   }
   export class Provider extends Member {
      providerID: string;
   }
   export class FinanceCo extends Member {
      financeCoID: string;
   }
   export class Order extends Asset {
      orderNumber: string;
      items: string[];

要使该应用程序正常工作,需要一个额外的导入语句。

代码语言:javascript
复制
import {Member} from './org.acme.Z2BTestNetwork.base';

这似乎是用于超级分类账-composer的yo实现中的一个bug。对于自动修复这个问题,有什么建议吗?

如果选择了使用命名空间的yo选项,则只从生成单个文件。base.cto文件不再导致生成.ts文件;但是,没有使用来自base.cto文件的定义,而且由于缺少在base.cto文件中定义的成员的抽象定义,应用程序仍然无法加载。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-30 23:17:01

在错误被修复之前,有一个手动操作。也就是说,将必要的导入语句添加到基本.ts文件中--在我的示例中,这将是org.acme.Z2BTestNetwork.ts文件。对于目标环境中需要的每个类,都需要导入。因为我只缺少了一个类(成员),所以只需要一个import语句。

如果有许多必需的导入语句,则可以构建一个蛮力bash将必要的文件合并在一起作为替代,直到这一问题得到解决。

票数 0
EN

Stack Overflow用户

发布于 2017-08-30 17:41:27

这看起来确实是个bug。我会调查,制造一个问题并修复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45960487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档