最近做一个项目,需要从QPID消息中获取信息。
注册QPID消息
QueuelistenerManager queuelistenerManager = new QueuelistenerManager(true);
QueueListener queueListener = new QueueListener();
String url = “amqp://guest:guest@clientid/test?brokerlist='tcp://192.168.2.1:5772'”;
queueListener.setUrl(url);
queueListener.setQueueName("QPID_QUEUE_NAME");
MyProcessor myProcessor = new MyProcessor ();
queueListener.setProcessor(myProcessor );
queuelistenerManager.addListener(queueListener);
public class MyProcessor implements MessageProcessor
{
@Override
public void processMessage(Message message)
{
System.out.println("in process!!!!");
JMSBytesMessage bytesMessage = (JMSBytesMessage) message;
try
{
ByteBuffer bb = bytesMessage.getData();
int len = bb.capacity();
byte[] msgbytes = new byte[len];
bb.get(msgbytes, 0, len);//这里需要将字节信息节取出来,然后根据字段格式进行截取。
//INT32 code1;
int code1= byte2Int(msgbytes, offset, ByteOrder.LITTLE_ENDIAN);
}catch(Exception e){
}
}
public static int byte2Int(byte[] bytes, int offset, ByteOrder order)
{
ByteBuffer buffer = ByteBuffer.wrap(bytes, offset, 4);
buffer.order(order);
return buffer.getInt();
}
}

本文介绍了一种使用Java实现的QPID消息注册及处理方法。通过创建QueueListener并设置URL、队列名称和处理器,实现了从指定QPID队列接收消息的功能。文中详细展示了如何解析接收到的消息内容。

被折叠的 条评论
为什么被折叠?



