Как получить базовый объект из 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();
Другие вопросы по тегам