首页 > 解决方案 > Corda Enterprise 3.2 无法加载自定义配置文件

问题描述

我们已经构建了一个与 RabbitMQ 连接的 CordApp,并且需要一个配置文件来配置消息队列的订阅者和发布者。

CorDapp3.2-corda在 Corda Enterprise 3.2 节点上运行时构建,但无法加载配置文件。

当我们启动 Corda Web 服务器时,日志中会附加以下异常:

从网络服务器开始: localhost:8080 [ERROR] 11:59:24+0000 [main] messing.XXX.initializeQueues - 订阅 Rabbit 队列时捕获异常 [ERROR] 11:59:24+0000 [main] messing.XXX。初始化队列-net.corda.nodeapi.internal.config.ConfigUtilities.parseAs(Lcom/typesafe/config/Config;Lkotlin/reflect/KClass;)Ljava/lang/Object; java.lang.NoSuchMethodError: net.corda.nodeapi.internal.config.ConfigUtilities.parseAs(Lcom/typesafe/config/Config;Lkotlin/reflect/KClass;)Ljava/lang/Object; 2018 年 11 月 27 日上午 11:59:25 org.glassfish.jersey.internal.inject.Providers checkProviderRuntime

加载配置的代码如下:

 val connectionConfig = defaultConfig!!
    .resolve()
    .getConfig("app-integration.rabbitMqConnectionConfiguration")
    .parseAs<RabbitMqConnectionConfiguration>()

鉴于我们使用的是泛型parseAs<RabbitMqConnectionConfiguration>()方法,我们假设 this 旨在随后调用一个parseAs(Config, KClass): Object方法,但由于某种原因,它似乎丢失了?

标签: corda

解决方案


我实际上会看看上面@joel 的建议。Corda 还不是一个“开放核心”项目。

因此,您可能应该针对企业 jar 编译 cordapps,以确定问题是应用程序还是两个 corda 版本之间的不同 API。

我的另一个怀疑是corda OS和corda企业中可能使用了不同版本的java。

我还想看看这个问题在最新版本的corda中是否仍然存在。


推荐阅读