2013-03-04 3 views
0

Я пытаюсь написать простую программу Java, которая читает из таблицы jms_messages JBossMQ с помощью JDBC. Я использую JBoss 4.0.4.GA.Как получить базовый объект из SpyMessage в JBossMQ

Я могу получить доступ к 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 без ответа, поэтому я надеюсь на лучшую удачу здесь.

Спасибо.

ответ

0

К сожалению - ответ был настолько очевиден, что я не совсем уверен, что я думал, когда я отвечал на вопрос - просто:

Object objMessage = ((SpyObjectMessage)message).getObject();