Corda Enterprise在运行测试案例时会为自定义架构抛出“ net.corda.core.node.services.VaultQueryException”

时间:2018-10-10 07:10:22

标签: blockchain corda

根据Corda企业文档,我们添加了如下所示的自定义架构

fun setup() {
        network = MockNetwork(cordappPackages = listOf("com.xxx.service", "com.xxx.yyy", "com.xxx.zzzz", "com.xxx.kkk", "com.xxx.ttt", "com.xxx.yyyy.schema"))
}

fun setup() {
        network = MockNetwork(listOf("com.xxx.service", "com.xxx.yyy", "com.xxx.zzzz", "com.xxx.kkk", "com.xxx.ttt", "com.xxx.yyyy.schema"))
}

在运行测试用例时,我们面临以下问题,

[INFO] 12:11:35,213 [main] cordapp.CordappLoader.scanCordapp - Scanning CorDapp in file:/C:/Users/************/generated-test-cordapps/com.xxx.service-c7ab4ac5-fd21-40ae-86e6-18cc219b3179.jar
[INFO] 12:11:35,862 [main] hikari.HikariDataSource.<init> - HikariPool-1 - Started.
[WARN] 12:11:37,726 [main] persistence.SchemaMigration.doRunMigration - No migration defined for schema: com.xxx.yyy.schema.yyyy v1
[WARN] 12:11:37,733 [main] persistence.SchemaMigration.doRunMigration - No migration defined for schema: com.xxx.yyy.schema.xxxStateSchema v1
[INFO] 12:11:40,127 [main] persistence.SchemaMigration.doRunMigration - defaultSchemaName=PUBLIC



 net.corda.core.node.services.VaultQueryException: 
                    Please register the entity 'com.xxx.yyyy.schema.XXXXSchemaV1$XXXX'
                    See https://docs.corda.net/api-persistence.html#custom-schema-registration for more information

需要帮助。

1 个答案:

答案 0 :(得分:0)

在Corda Enterprise中,模式类需要具有相应的带有表定义的Liquibase迁移脚本。该脚本将创建后备表。 错误

persistence.SchemaMigration.doRunMigration - No migration defined for schema: com.xxx.yyy.schema.yyyy v1* 

建议这样做,但是您可能还会错误配置脚本文件名。 如果架构类未覆盖 migrationResource 字段,则具有Liquibase架构的文件名必须遵循模式,将大写字母更改为小写字母,例如连字符。上课

com.example.MyMappedSchema

相关脚本文件应为

my-mapped-schema.changelog-master.XXX ,其中XXX可以是 xml sql yml json

该文件需要放置在 resources / migration 源文件夹中,然后才能复制到Cordapp JAR中(或找到进行测试的文件)。 如果您的架构类具有 migrationResource ,则Liquibase脚本仍需要位于 resources / migration 文件夹下。