我可以通过JMS将子类发送给不使用';你没有子类的类定义吗?

我可以通过JMS将子类发送给不使用';你没有子类的类定义吗?,jms,activemq,Jms,Activemq,(1) 我的JMS制作人 等级水果 苹果类水果 (2) 我的JMS消费者只有 等级水果 (3) JMS消费者正在侦听主题X,希望接收水果对象 (4) JMS生产者向主题X发送一个Apple对象 消费者是否能够将主题中的苹果作为水果接收而不摔倒?简短的回答是否。ObjectMessage发送一个序列化Java对象,这意味着您需要在接收方的类路径中包含该类,因为您需要类定义来反序列化该对象并提供子类中重写方法的实现 在这种情况下,只需询问您的计算机,编写一组简单的发送者和接收者,并配置类路径以匹配您

(1) 我的JMS制作人

等级水果 苹果类水果

(2) 我的JMS消费者只有

等级水果

(3) JMS消费者正在侦听主题X,希望接收水果对象

(4) JMS生产者向主题X发送一个Apple对象


消费者是否能够将主题中的苹果作为水果接收而不摔倒?

简短的回答是否。ObjectMessage发送一个序列化Java对象,这意味着您需要在接收方的类路径中包含该类,因为您需要类定义来反序列化该对象并提供子类中重写方法的实现


在这种情况下,只需询问您的计算机,编写一组简单的发送者和接收者,并配置类路径以匹配您所述的问题,然后查看发生了什么

如果您只考虑多态行为,这可能没问题,但您的问题更多的是类加载问题。因为即使源代码相同,也取决于类加载的JVM类加载器。在某些情况下,在不同的类加载器中加载的同一个类会给你一个ClassCastException。是的,我试过了,但在到达我的侦听器主题之前它就坏了。我还没有深入到发生这种情况的地方。我希望在某处有一根圆木