【问题标题】:How to get the underlying object from a SpyMessage in JBossMQ如何从 JBossMQ 中的 SpyMessage 获取底层对象
【发布时间】:2013-03-04 18:35:51
【问题描述】:

我正在尝试编写一个使用 JDBC 从 JBossMQ 的 jms_messages 表中读取的简单 Java 程序。我正在使用 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 论坛上提出这个问题而没有得到回复,所以我希望在这里能有更好的运气。

谢谢。

【问题讨论】:

    标签: jboss jbossmq


    【解决方案1】:

    抱歉 - 答案太明显了,我不确定我在发布问题时在想什么 - 很简单:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      相关资源
      最近更新 更多