【问题标题】:contractState was not found by the Node (Corda, Spring)节点找不到contractState(Corda,Spring)
【发布时间】:2019-03-23 21:45:57
【问题描述】:

我正在尝试通过创建事务来使用 Spring-boot 网络服务器测试我的 Cordapp(使用 Corda 4,gradle),但我遇到了一个错误,指出节点找不到 my.app.ContractState。

我有三个模块:合约(保存合约和状态)、工作流和 spring。我已确保在我的 build.gradle for spring 中包含工作流和合同作为 cordapp 项目依赖项。所有状态都包含@CordaSerializable。

"java.io.NotSerializableException: my.app.state.contractState 未被节点找到,检查包含实现 my.app.state.contractState 的 CorDapp 的节点是否已加载并在类路径”

预期结果包括状态 200 以及提交到分类帐的交易摘要。

当我进行本地 http 调用(例如 http://localhost:8088/create-txn)时,我收到了这个错误,它应该创建一个新的事务,但还不能解决这个问题。有没有其他人遇到过这个问题?

【问题讨论】:

    标签: spring spring-boot gradle corda


    【解决方案1】:

    您的 contract.jar 是否包含路径 META-INF\services\ 下的 net.corda.core.serialization.SerializationWhitelist 文件? 因为我曾经遇到过这个错误,但是在删除合同中的白名单文件后它工作正常。 我认为 net.corda.core.serialization.SerializationWhitelist 应该只包含在 flow.jar 中。

    【讨论】:

    • 感谢您的回复。不幸的是,我在 serializationWhiteList 中没有contract.jar,所以这并没有解决我的问题。还有其他想法吗?
    【解决方案2】:

    我能够解决这个问题。我需要将 contracts 模块设置为 deployNodes 任务中的默认 Cordapp 项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 1970-01-01
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 2018-05-28
      相关资源
      最近更新 更多