lo agradecería cualquier ayuda en este ...objeto con la colección que contiene objetos serializables, no primitivos no se puede establecer como ActiveMQ ObjectMessage
Tengo un objeto que estoy tratando de enviar un JMS ObjectMessage llamando a setObject. Este objeto contiene un contenido HashMap así como algunos otros campos. Cuando el mapa contiene elementos primitivos, el mensaje se construye bien. Del mismo modo, si agrego un campo serializable no primitivo al Objeto, también envía OK.
Aquí está el problema: Cada vez que intento agregar un objeto no serializable primitiva a la MAP me sale el siguiente MessageFormatException:
javax.jms.MessageFormatException: Only objectified primitive objects, String,
Map and List types are allowed but was: com.abc.ObjectInList
el Javadoc para ObjectMessage especifica ...
Sólo Se pueden usar objetos Java serializables.
... Comprobar. Y ...
Si se debe enviar una colección de objetos Java, se puede usar una de las clases de Colección proporcionadas desde JDK 1.2.
... doble control. Si bien esto no dice nada específicamente sobre los objetos serializables en una colección, supongo que asumiría que esto sería compatible. ¿Estoy haciendo algo mal aquí? ¿Acabo de morder la bala y crear un nuevo campo en mi Objeto de nivel superior para no tener que ponerlo en la Colección?
Usando ActiveMQ 5.2. Sigue un seguimiento de pila pertinente.
2011-08-01 21: 06: 05,767 ERROR javax.jms.MessageFormatException: objetos primitivos Sólo objetivadas, Cordel, mapa y una lista tipos son permitidos, pero fue: [email protected] tipo: clase c om.abc.engine.ejb.BasicSchedule 2011-08-01 21: 06: 05,767 ERROR en org.apache.activemq.command.ActiveMQMessage.checkValidObject (ActiveMQMessage.java:468) 2011-08- 01 21: 06: 05,767 ERROR en org.apache.activemq.command.ActiveMQMapMessage.setObject (ActiveMQMapMessage.java:705) 2011-08-01 21: 06: 05,767 ERROR en com.abc.chronicle.ejb.ChronicleMessageBean.initMessage (ChronicleMessageBean.java:149) 2011-08-01 21: 06: 05,767 ERROR en com.abc.chronicle.ejb.Chr onicleMessageBean.send (ChronicleMessageBean.java:125) 2011-08-01 21: 06: 05,767 ERROR en com.abc.chronicle.ejb.ChronicleMessageBean.onMessage (ChronicleMessageBean.java:77) 2011-08-01 21:06 : 05,767 ERROR en sun.reflect.NativeMethodAccessorImpl.invoke0 (Método nativo) 2011-08-01 21: 06: 05,768 ERROR en sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) 2011-08-01 21:06 : 05,777 ERROR [com.abc.chronicle.ejb.ChronicleMessageBean] Excepción de JMS que envía un mensaje a SDK.OUTGOING_NOTIFICATION: javax.jms.MessageFormatException: Solo se permiten los objetos primitivos objetivados, String, Ma p y los tipos de lista, pero fue: com.abc .engine.ejb.BasicSchedule @ 1003b2df tipo: class com.abc.engine.ejb.BasicSchedule 2011-08-01 21: 06: 05,778 ERROR javax.jms.MessageFormatException: Solo objetos primitivos objetivados, String, Map y Li st tipos están permitidos pero fue: [email protected] tipo: clase c om.abc.engine.ejb.BasicSchedule 2011-08-01 21: 06: 05,778 ERROR en org.apache.activemq .command.ActiveMQMessage.checkValidObject (ActiveMQMessage.java:468) 2011-08-01 21: 06: 05,778 ERROR en org.apache.activemq.command.ActiveMQMapMessage.setObject (ActiveMQMapMessage.java: 705) 2011-08-01 21: 06: 05,778 ERROR en com.abc.chronicle.ejb.ChronicleMessageBean.initMessage (ChronicleMessageBean.java:149) 2011-08-01 21: 06: 05,778 ERROR en com. abc.chronicle.ejb.ChronicleMessageBean.send (ChronicleMessageBean.java:125) 2011-08-01 21: 06: 05 778 ERROR en com.abc.chronicle.ejb.ChronicleMessageBean.onMessage (ChronicleMessageBean.java:77)
Tengo el mismo problema también. Publiqué un programa de prueba aquí en el foro de Camel: http://camel.465427.n5.nabble.com/MessageFormatException-using-requestBody-InOut-over-activemq-JMS-td5554469.html#a5711703. Hay una solución para este error? –