即使是要扫描的软件包,Corda NodeDriver MissingContractAttachments仍为现金

时间:2018-08-22 17:07:16

标签: corda

获取MissingContractAttachments异常:

  

java.util.concurrent.ExecutionException:net.corda.core.transactions.MissingContractAttachments:找不到[net.corda.finance.contracts.asset.Cash]的合同附件

将NodeDriver的软件包设置为:

...
withExtraCordappPackagesToScan(
    Arrays.asList.of("com.cordatemplate.cordapp, net.corda.finance, 
        net.corda.finance.contracts.asset")
)
...

但是错误仍然存​​在。还尝试过:

...
.withExtraCordappPackagesToScan(
                    Arrays.asList("com.cordatemplate.cordapp, 
    net.corda.finance, net.corda.finance.contracts.asset, 
    net.corda.finance.schemas, net.corda.finance.contracts.asset.Cash, 
    net.corda.finance.contracts.asset.Cash.Commands.Issue")
)
...

2 个答案:

答案 0 :(得分:1)

每个包都需要作为一个单独的字符串而不是字符串列表传递。

所以代替:

withExtraCordappPackagesToScan(
    Arrays.asList.of("com.cordatemplate.cordapp, net.corda.finance, 
        net.corda.finance.contracts.asset")
)

您会写:

withExtraCordappPackagesToScan(
    Arrays.asList.of(
        "com.cordatemplate.cordapp", 
        "net.corda.finance", 
        "net.corda.finance.contracts.asset")
)

答案 1 :(得分:0)

根据corda documentationXcode错误的两个主要来源是由于未在测试中设置Cordapp软件包或具有错误的完全合格的合同名称。

由于您似乎已经尝试包含软件包,因此您可能使用了错误的标准合同名称。

从文档中

  

例如,您在com.mycompany.myapp.contracts包中定义了MyContract,但是传递给TransactionBuilder的标准合同名称是com.mycompany.myapp.MyContract(而不是com.mycompany.myapp .contracts.MyContract)。