0

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フォーラムで返信なしでこの質問をしようとしたので、ここで幸運を祈っています。

ありがとう。

4

1 に答える 1

0

申し訳ありませんが、答えは非常に明白で、質問を投稿したときに何を考えていたのかよくわかりません - 簡単に:

Object objMessage = ((SpyObjectMessage)message).getObject();
于 2013-03-04T10:35:51.800 に答える