在单独的项目中,生产者和消费者在尝试反序列化时会导致classnotfound

时间:2016-08-25 21:27:00

标签: spring-boot rabbitmq

使用RabbitMQ,Spring-Boot

  1. 我编写了Producer并将对象a.b.MyObject发送到队列。
  2. 在另一个项目(单独的JVM)中写了一个消费者,该项目监听队列并且具有相同的对象c.d.MyObject。
  3. 因为包结构不同,我得到的原因是:java.lang.ClassNotFoundException:a.b.MyObject

    制作相同的包结构可以解决这个不幸的问题。我想我会添加一个bean来转移jsons,不确定是否能解决包问题。

1 个答案:

答案 0 :(得分:1)

  

java.lang.ClassNotFoundException:a.b.MyObject

是Java序列化的本质,除非在反序列化方面具有相同的类,否则没有其他选择。

是的,如果您将JSON MessageConverter配置为正确的way,则可能会有所帮助。

我的意思是AbstractJavaTypeMapper.setIdClassMapping(),您可以将传入的__TypeId__(通常为类)邮件标头重新映射到目标本地消费者的类。