当我尝试在Glassfish 3.1 Open MQ上使用JMS在Date
中发送MapMessage
对象时,我收到以下错误:
javax.jms.MessageFormatException: [C4017]: Invalid message format.
以下是我尝试在Date
中发送MapMessage
对象的代码:
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
}
}
}
有人可以帮我理解为什么我会遇到这个例外吗?
感谢。
答案 0 :(得分:1)
我认为MapMessage只支持字符串和原语。您可以将日期序列化为字符串,也可以使用ObjectMessage。
要序列化日期,您可以使用SimpleDateFormat