Как получить базовый объект из SpyMessage в JBossMQ
Я пытаюсь написать простую программу на Java, которая читает из таблицы jms_messages JBossMQ, используя JDBC. Я использую JBoss 4.0.4.GA.
Я могу получить то же самое, что и получение SpyMessage, но как я могу получить фактическое содержимое сообщения (которое является объектом в конкретном случае, на который я смотрю).
У меня есть набор результатов "rs" из этого утверждения:
SELECT messageid, messageblob FROM jms_messages WHERE DESTINATION LIKE 'TOPIC.MyTopic%' limit 3"
и затем я делаю это (на основе кода JBoss):
long messageid = rs.getLong(1);
SpyMessage message = null;
byte[] st = rs.getBytes(2);
ByteArrayInputStream baip = new ByteArrayInputStream(st);
ObjectInputStream ois = new ObjectInputStream(baip);
message = SpyMessage.readMessage(ois);
message.header.messageId = messageid;
String jmstype = message.getJMSType();
String jms_message_id = message.getJMSMessageID();
System.out.println("jmstype=" +jmstype);
System.out.println("jms_message_id=" +jms_message_id);
String propertyName;
Enumeration e = message.getPropertyNames();
while (e.hasMoreElements())
{
propertyName = (String)e.nextElement();
System.out.println("property name = " +propertyName);
}
но я не печатаю никаких свойств, и я не знаю, как получить мой фактический объект из SpyMessage (фактически SpyObjectMessage). Буду благодарен за любые указатели.
Я пытался задать этот вопрос на форуме JBoss без ответа, так что я надеюсь на удачу здесь.
Благодарю.
1 ответ
Извините - ответ был настолько очевиден, что я не совсем уверен, о чем я думал, когда отправил вопрос - просто:
Object objMessage = ((SpyObjectMessage)message).getObject();