Corda 科达服务<;初始化>;无法加载org.apache.kafka.common.serialization.StringSerializer

Corda 科达服务<;初始化>;无法加载org.apache.kafka.common.serialization.StringSerializer,corda,Corda,我实现了一个CordaService,它使用kafka客户端库连接到外部ApacheKafka MQ(init块内部)。Kafka客户端生产者需要访问Kafka客户端库中定义的org.apache.Kafka.common.serialization.StringSerializer对象 我已将kafka客户端库包含在cordapp模块的build.gradle中,服务定义如下: 编译“org.apache.kafka:kafka客户端:2.0.1” 在corda节点启动时,我收到以下消息: [

我实现了一个CordaService,它使用kafka客户端库连接到外部ApacheKafka MQ(init块内部)。Kafka客户端生产者需要访问Kafka客户端库中定义的
org.apache.Kafka.common.serialization.StringSerializer
对象

我已将kafka客户端库包含在cordapp模块的build.gradle中,服务定义如下:
编译“org.apache.kafka:kafka客户端:2.0.1”

在corda节点启动时,我收到以下消息:

[WARN ] 2019-08-30T07:04:40,551Z [main] internal.Node.installCordaService - com.example.flow.ProducerService is using legacy CordaService constructor with ServiceHub parameter. Upgrade to an AppServiceHub parameter to enable updated API features.
[ERROR] 2019-08-30T07:04:40,716Z [main] internal.Node.installCordaServices - Unable to install Corda service com.example.flow.ProducerService [errorCode=1aep02i, moreInformationAt=https://errors.corda.net/OS/4.0/1aep02i]
java.lang.reflect.InvocationTargetException: null
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_181]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_181]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_181]
    at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_181]
    at net.corda.node.internal.AbstractNode.installCordaService(AbstractNode.kt:654) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.AbstractNode.installCordaServices(AbstractNode.kt:577) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.AbstractNode.access$installCordaServices(AbstractNode.kt:120) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.AbstractNode$start$7.invoke(AbstractNode.kt:382) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.AbstractNode$start$7.invoke(AbstractNode.kt:120) ~[corda-node-4.0.jar:?]
    at net.corda.nodeapi.internal.persistence.CordaPersistence.inTopLevelTransaction(CordaPersistence.kt:236) ~[corda-node-api-4.0.jar:?]
    at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:221) ~[corda-node-api-4.0.jar:?]
    at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:199) ~[corda-node-api-4.0.jar:?]
    at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:205) ~[corda-node-api-4.0.jar:?]
    at net.corda.node.internal.AbstractNode.start(AbstractNode.kt:371) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.Node.start(Node.kt:419) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:185) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.NodeStartupCli$runProgram$2.run(NodeStartup.kt:110) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.NodeStartup$initialiseAndRun$5.invoke(NodeStartup.kt:162) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.NodeStartup$initialiseAndRun$5.invoke(NodeStartup.kt:117) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.NodeStartupLogging$DefaultImpls.attempt(NodeStartup.kt:450) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.NodeStartup.attempt(NodeStartup.kt:117) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.NodeStartup.initialiseAndRun(NodeStartup.kt:160) ~[corda-node-4.0.jar:?]
    at net.corda.node.internal.NodeStartupCli.runProgram(NodeStartup.kt:108) ~[corda-node-4.0.jar:?]
    at net.corda.cliutils.CordaCliWrapper.call(CordaCliWrapper.kt:184) ~[corda-tools-cliutils-4.0.jar:?]
    at net.corda.cliutils.CordaCliWrapper.call(CordaCliWrapper.kt:152) ~[corda-tools-cliutils-4.0.jar:?]
    at picocli.CommandLine.execute(CommandLine.java:1056) ~[picocli-3.8.0.jar:3.8.0]
    at picocli.CommandLine.access$900(CommandLine.java:142) ~[picocli-3.8.0.jar:3.8.0]
    at picocli.CommandLine$RunLast.handle(CommandLine.java:1246) ~[picocli-3.8.0.jar:3.8.0]
    at picocli.CommandLine$RunLast.handle(CommandLine.java:1214) ~[picocli-3.8.0.jar:3.8.0]
    at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1122) ~[picocli-3.8.0.jar:3.8.0]
    at picocli.CommandLine.parseWithHandlers(CommandLine.java:1405) ~[picocli-3.8.0.jar:3.8.0]
    at net.corda.cliutils.CordaCliWrapperKt.start(CordaCliWrapper.kt:72) ~[corda-tools-cliutils-4.0.jar:?]
    at net.corda.node.Corda.main(Corda.kt:13) ~[corda-node-4.0.jar:?]
Caused by: org.apache.kafka.common.config.ConfigException: Invalid value org.apache.kafka.common.serialization.StringSerializer for configuration key.serializer: Class org.apache.kafka.common.serialization.StringSerializer could not be found.
    at org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:724) ~[?:?]
    at org.apache.kafka.common.config.ConfigDef.parseValue(ConfigDef.java:469) ~[?:?]
    at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:462) ~[?:?]
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:62) ~[?:?]
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:75) ~[?:?]
    at org.apache.kafka.clients.producer.ProducerConfig.<init>(ProducerConfig.java:364) ~[?:?]
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:304) ~[?:?]
    at com.example.flow.Producer.<init>(Service.kt:26) ~[?:?]
    at com.example.flow.Ping.<init>(Service.kt:49) ~[?:?]
    at com.example.flow.ProducerService.<init>(Service.kt:21) ~[?:?]
    ... 33 more
[INFO ] 2019-08-30T07:04:41,863Z [main] statemachine.SingleThreadedStateMachineManager.invoke - Node ready, info: NodeInfo(addresses=[localhost:10004], legalIdentitiesAndCerts=[O=PartyA, L=London, C=GB], platformVersion=4, serial=1567146729127)
[INFO ] 2019-08-30T07:04:42,001Z [Node thread-1] internal.Node.registerJmxReporter - Registering JMX reporter:
[INFO ] 2019-08-30T07:04:42,003Z [main] BasicInfo.printBasicNodeInfo - Loaded 2 CorDapp(s)                     : Contract CorDapp: CorDapp Example version 1 by vendor Corda Open Source with licence Apache License, Version 2.0, Workflow CorDapp: CorDapp Example version 1 by vendor Corda Open Source with licence Apache License, Version 2.0
[INFO ] 2019-08-30T07:04:42,004Z [Node thread-1] internal.Node.registerJolokiaReporter - Registering Jolokia JMX reporter:
[INFO ] 2019-08-30T07:04:42,009Z [main] BasicInfo.printBasicNodeInfo - Node for "PartyA" started up and registered in 51.24 sec
[INFO ] 2019-08-30T07:04:42,012Z [main] rpc.RPCServer.start - Starting RPC server with configuration RPCServerConfiguration(rpcThreadPoolSize=4, reapInterval=PT1S, deduplicationCacheExpiry=PT24H)

[WARN]2019-08-30T07:04:40551Z[main]internal.Node.installCordaService-com.example.flow.ProducerService正在使用带有ServiceHub参数的旧CordaService构造函数。升级到AppServiceHub参数以启用更新的API功能。
[错误]2019-08-30T07:04:40716Z[main]internal.Node.installCordaServices-无法安装Corda服务com.example.flow.ProducerService[errorCode=1aep02i,更多信息请访问=https://errors.corda.net/OS/4.0/1aep02i]
java.lang.reflect.InvocationTargetException:null
在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)~[?:1.8.0_181]
在sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)~[?:1.8.0_181]
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知源)~[?:1.8.0_181]
在java.lang.reflect.Constructor.newInstance(未知源代码)~[?:1.8.0_181]
在net.corda.node.internal.AbstractNode.installCordaService(AbstractNode.kt:654)~[corda-node-4.0.jar:?]
在net.corda.node.internal.AbstractNode.installCordaServices(AbstractNode.kt:577)~[corda-node-4.0.jar:?]
在net.corda.node.internal.AbstractNode.access$installCordaServices(AbstractNode.kt:120)~[corda-node-4.0.jar:?]
在net.corda.node.internal.AbstractNode$start$7.invoke(AbstractNode.kt:382)~[corda-node-4.0.jar:?]
在net.corda.node.internal.AbstractNode$start$7.invoke(AbstractNode.kt:120)~[corda-node-4.0.jar:?]
在net.corda.nodeapi.internal.persistence.CordaPersistence.inTopLevelTransaction(CordaPersistence.kt:236)~[corda-node-api-4.0.jar:?]
在net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:221)~[corda-node-api-4.0.jar:?]
在net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:199)~[corda-node-api-4.0.jar:?]
在net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:205)~[corda-node-api-4.0.jar:?]
在net.corda.node.internal.AbstractNode.start(AbstractNode.kt:371)~[corda-node-4.0.jar:?]
在net.corda.node.internal.node.start(node.kt:419)~[corda-node-4.0.jar:?]
在net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:185)~[corda-node-4.0.jar:?]
在net.corda.node.internal.NodeStartupCli$runProgram$2.run(NodeStartup.kt:110)~[corda-node-4.0.jar:?]
在net.corda.node.internal.NodeStartup$initialiseAndRun$5.invoke(NodeStartup.kt:162)~[corda-node-4.0.jar:?]
在net.corda.node.internal.NodeStartup$initialiseAndRun$5.invoke(NodeStartup.kt:117)~[corda-node-4.0.jar:?]
在net.corda.node.internal.nodestartuploging$DefaultImpls.trunt(NodeStartup.kt:450)~[corda-node-4.0.jar:?]
在net.corda.node.internal.NodeStartup.trunt(NodeStartup.kt:117)~[corda-node-4.0.jar:?]
在net.corda.node.internal.NodeStartup.initialiseAndRun(NodeStartup.kt:160)~[corda-node-4.0.jar:?]
在net.corda.node.internal.NodeStartupCli.runProgram(NodeStartup.kt:108)~[corda-node-4.0.jar:?]
在net.corda.cliutils.cordacliwraper.call(cordacliwraper.kt:184)~[corda-tools-cliutils-4.0.jar:?]
在net.corda.cliutils.cordacliwraper.call(cordacliwraper.kt:152)~[corda-tools-cliutils-4.0.jar:?]
在picocli.CommandLine.execute(CommandLine.java:1056)~[picocli-3.8.0.jar:3.8.0]
在picocli.CommandLine.access$900(CommandLine.java:142)~[picocli-3.8.0.jar:3.8.0]
在picocli.CommandLine$RunLast.handle(CommandLine.java:1246)~[picocli-3.8.0.jar:3.8.0]
在picocli.CommandLine$RunLast.handle(CommandLine.java:1214)~[picocli-3.8.0.jar:3.8.0]
在picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1122)~[picocli-3.8.0.jar:3.8.0]
在picocli.CommandLine.parseWithHandlers(CommandLine.java:1405)~[picocli-3.8.0.jar:3.8.0]
在net.corda.cliutils.cordacliwraperkt.start(CordaCliWrapper.kt:72)~[corda-tools-cliutils-4.0.jar:?]
在net.corda.node.corda.main(corda.kt:13)~[corda-node-4.0.jar:?]
原因:org.apache.kafka.common.config.ConfigException:找不到配置键的无效值org.apache.kafka.common.serialization.StringSerializer.serializer:类org.apache.kafka.common.serialization.StringSerializer。
在org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:724)~[?:?]
在org.apache.kafka.common.config.ConfigDef.parseValue(ConfigDef.java:469)~[?:?]
在org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:462)~[?:?]
在org.apache.kafka.common.config.AbstractConfig.(AbstractConfig.java:62)~[?:?]
在org.apache.kafka.common.config.AbstractConfig.(AbstractConfig.java:75)~[?:?]
在org.apache.kafka.clients.producer.ProducerConfig.(ProducerConfig.java:364)~[?:?]
在org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:304)~[?:?]
在com.example.flow.Producer.(Service.kt:26)~[?:?]
在com.example.flow.Ping.(Service.kt:49)~[?:?]
在com.example.flow.ProducerService.(Service.kt:21)~[?:?]
... 33多
[INFO]2019-08-30T07:04:41863Z[main]statemachine.SingleThreadedStateMachineManager.invoke-节点就绪,信息:NodeInfo(地址=[localhost:10004],合法身份和证书=[O=PartyA,L=London,C=GB],平台版本=4,串行=1567146729127)
[信息]2019-08-30T07:04:42001Z[节点线程-1]internal.Node.registerJmxReporter-注册JMX reporter:
[信息]2019-08-30T07:04:42003Z[主要]基本信息