Date javax.jms.MessageFormatException:消息格式无效

Date javax.jms.MessageFormatException:消息格式无效,date,jms,java-ee-6,glassfish-3,message-queue,Date,Jms,Java Ee 6,Glassfish 3,Message Queue,当我尝试在Glassfish 3.1 Open MQ上使用JMS发送MapMessage中的Date对象时,我收到以下错误: javax.jms.MessageFormatException: [C4017]: Invalid message format. 以下是我如何尝试在MapMessage中发送Date对象的代码: public class JSenderMockClient { public static void main(String[] args) {

当我尝试在Glassfish 3.1 Open MQ上使用JMS发送
MapMessage
中的
Date
对象时,我收到以下错误:

javax.jms.MessageFormatException: [C4017]: Invalid message format.
以下是我如何尝试在
MapMessage
中发送
Date
对象的代码:

public class JSenderMockClient {
    public static void main(String[] args) {
        try {           
            //using jndiContext to get ConnectionFactory, Queue, Session and stuff

            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            MessageProducer producer = session.createProducer(destination);

            MapMessage mapMessage = session.createMapMessage();
            mapMessage.setObject("now", new Date());

            producer.send(mapMessage);

            System.out.println("MapMessage \"now\" sent..");            
        } catch (Throwable ex) {
            //just in case stuff
        } finally {
            //closing session and connection
        }
    }
}
有人能帮我理解为什么我会遇到这个异常吗


谢谢。

我认为MapMessage只支持字符串和原语。可以将日期序列化为字符串,也可以使用ObjectMessage

要序列化日期,可以使用