spring-cloud-stream - 从http源写入json数据时mongodb sink问题
问题描述
我的流设置是 http source -> mongodb sink。当我从 http 源发送测试消息(JSON)时,在 mongodb 接收器中出现以下错误。
消息处理程序发生错误 [bean 'mongoConsumerMessageHandler'; 定义在:'org.springframework.cloud.fn.consumer.mongo.MongoDbConsumerConfiguration';来自消息来源:'org.springframework.core.type.StandardMethodMetadata@1b11ef33'] 消息 [GenericMessage [payload=byte[24],headers={amqp_receivedDeliveryMode=PERSISTENT,content-length=24,amqp_receivedExchange=http-rabbit-stream- http-源,amqp_deliveryTag=1,amqp_redelivered=false,b3=a080d23cbf78b659-65e9906748c2b-1,主机=http-src-http-source-v1.dt-u2.cf.test.net,连接=关闭,id=7fac727a- de9a-aea95-92c574a246d1, cache-control=no-cache, sourceData=(Body:' {"hello": "world !!"} ... 15:38:39.818: [APP/PROC/WEB.0] org .springframework.data.mapping.MappingException:找不到类型类的 PersistentEntity [B!15:38:39.818:
解决方案
这似乎是应用程序的问题。我们将对其进行调查并尽快解决。同时,如果您想在本地修复它,请尝试以下步骤。
- 克隆 repo:https ://github.com/spring-cloud/stream-applications
- 将此函数定义更改为
<functionDefinition>byteArrayTextToString|mongodbConsumer</functionDefinition>
- 在此处添加以下内容作为依赖项。
<dependency>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>payload-converter-function</artifactId>
</dependency>
- 从 repo 的根目录:
./mvnw clean install -pl :mongodb-sink
cd applications/sink/mongodb-sink/apps/mongodb-sink-rabbit
./mvnw clean package
.- 获取生成的 jar 并将其安装在 SCDF 中。
这应该适用于像HTTP | MongoDB
.