我有一个演示Spring集成项目,是接收卡夫卡消息,聚合它们,然后释放它们.我正试着在这个项目中增加JdbcMessageStore
个.问题是它失败了,并出现了错误:
Caused by: java.lang.IllegalArgumentException: Cannot store messages without an ID header
at org.springframework.util.Assert.notNull(Assert.java:201) ~[spring-core-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.integration.jdbc.store.JdbcMessageStore.addMessage(JdbcMessageStore.java:314) ~[spring-integration-jdbc-5.3.8.RELEASE.jar:5.3.8.RELEASE]
调试后,我发现它需要该消息中的UUID头id
.但问题是我不能手动设置Kafka Header ID-它是被禁止的(与timestamp
Header相同)-我在不同项目的Kafka Producer中try 过这样做.
如果我使用名为Big Data Tools
的IDEA插件并从那里发送一条消息,我可以设置id
头,但它是以字节数组的形式被我的项目接收的,它失败并出现错误
IllegalArgumentException Incorrect type specified for header 'id'. Expected [UUID] but actual type is [B]
关于如何解决这个问题,我找不到任何解决方案.我需要以某种方式设置这个id
头,以便能够在数据库中存储消息.
提前谢谢你