JDBCを使用してJBossMQのjms_messagesテーブルから読み取る単純なJavaプログラムを作成しようとしています。JBoss4.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フォーラムで返信なしでこの質問をしようとしたので、ここで幸運を祈っています。
ありがとう。