ActiveMQキューにメッセージを送信しようとしていますが、java.lang.ClassCastException: java.util.UUID cannot be cast to java.lang.String
が表示されています。私はこの問題を解決する方法を見出そうとしていますが、本当の答えはオンラインではありません。CamelでActiveMQメッセージを送信するとClassCastExceptionが発生する
ここでcamelContextはスプリングを使用して注入されており、実行中であることがわかります。
私はこのメソッドに入る唯一の方法として、ActiveMQが適切にセットアップされていることを知っています。別のキューからメッセージを受信し、上記のいくつかの方法を実行した後にこのメッセージを中継しようとしています。どのような方法でもメッセージ。
メッセージにはMap<UUID,Object>
というメッセージが含まれています。これは疑問の根本的な問題です。 部分的なスタックトレース:
とjava.lang.ClassCastException:java.util.UUIDは org.apache.activemq.util.MarshallingSupport.marshalPrimitiveMapで java.lang.Stringでにキャストすることはできません(MarshallingSupport.java:61 ) でorg.apache.activemq.util.MarshallingSupport.marshalPrimitive(MarshallingSupport.java:151) org.apache.activemq.util.MarshallingSupport.marshalPrimitiveMap(MarshallingSupport.java:64) org.apacheで ました。 activemq.command.ActiveMQMapMessage.storeContent(ActiveMQMapMessage.java:150) at org.apache.activemq.ActiveMQSessionでorg.apache.activemq.command.ActiveMQMapMessage.copy org.apache.activemq.command.ActiveMQMapMessage.copy(ActiveMQMapMessage.java:116)で(ActiveMQMapMessage.java:121) .send でorg.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:224)で org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:289)で(ActiveMQSession.java:1773) org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:79) at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:62) at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:635) でorg.apache.camel.component.jms.JmsConfiguration $ CamelJmsTemplate.doSend(JmsConfiguration.java:343)
誰かがこれに遭遇した後、ClassCastException
を回避する方法を見つけましたか?マーシャリングするときにはMap<String,Object>
と期待しており、Map<Object,Object>
をサポートしていないのは奇妙です。
私は100%が同様のメッセージでMap<UUID,Object>
を必要とする、私は道をUUID
以降であるためにそれを必要とHibernateでいくつかのものをやっているように、String
表現にUUID
を変換する必要はありません。
JMS MapMessageはオブジェクトの制限付きでMapです。送信前にコード内でこれを処理する必要があります –
メッセージのメソッドハンドラを送信したのではなく、終了しました'RouteBuilder'の' multicast() 'メソッドを使用してメッセージを送信し、' Predicate'を使用してメッセージを必要なものとしてフィルタリングしました。私は方法の外でそれをやっているので、魅力のように働く。 – Orin