ActiveMQ ObjectMessage 中的映射抛出 ClassCastException:无法分配 java.util.CollSer 的实例?

Map in ActiveMQ ObjectMessage throws ClassCastException: cannot assign instance of java.util.CollSer?

我将 JMS ObjectMessage 与 ActiveMQ 结合使用,以在其 setObject() 函数中传输可序列化的 POJO。

关于我的客户:

ObjectMessage omsg = getSession().createObjectMessage();
omsg.setObject(objectToSend);

objectToSend 是一个包含 Map:

的 POJO
private Map<Integer, Double> tickIdToPrice;

在我的服务器上,我尝试解码:

if (omsg.getObject() instanceof AJavaClass) {

但这会导致 Exception:

java.lang.ClassCastException: cannot assign instance of java.util.CollSer 
    to field com.x.z.y.RequestPriceResult.tickIdToPrice of type 
    java.util.Map in instance of com.x.z.y.RequestPriceResult

有人知道是什么导致了这个异常吗?关于 CollSer.

几乎找不到

找到了。

CollSet 定义为:

A unified serialization proxy class for the immutable collections.

在我的客户端上,我使用 Map.of 创建了一个地图。这创建了一个不可变的映射,在序列化时使用 CollSer。这导致 activemq 出现问题,使用普通的可变映射序列化并工作正常。