我们构建了一个CordApp,它与RabbitMQ连接,并需要一个配置文件来配置消息队列的订阅者和发布者。
CorDapp是针对3.2-corda
构建的,但是在Corda Enterprise 3.2节点上运行时无法加载配置文件。
启动Corda Web服务器时,日志中会附加以下异常:
以网络服务器身份启动:localhost:8080 [ERROR] 11:59:24 + 0000 [main] messages.XXX.initializeQueues-订阅时捕获到异常 兔子队列[错误] 11:59:24 + 0000 [主] messages.XXX.initializeQueues- 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>()
方法,我们假设此方法旨在随后调用parseAs(Config, KClass): Object
方法,但是由于某种原因,它似乎丢失了?
答案 0 :(得分:0)
我实际上会看一下@joel的建议。科尔达还不是一个“开放核心”项目。
因此,您可能应针对企业jar编译cordapps,以确定问题是应用程序还是两个corda版本之间的API不同。
我的另一个怀疑是在corda OS和corda企业中可能使用了不同版本的java。
我还将查看最新版本的corda是否仍然存在此问题。