我有一个程序,其中在一个 ejb 项目中创建会话 bean,并使用队列将消息发送到单独项目中的消息驱动 bean。在消息驱动 bean 中,我设法检索从会话 bean 发送过来的消息。然后该消息将用于获取另一个值,我必须将其发送回会话 bean。关于如何做的任何想法。非常感谢您提供的任何帮助。
ManagerBean:(部分代码)
queueConnection=queueConnectionFactory.createConnection();
session=queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
replyQueue=session.createTemporaryQueue();
consumer=session.createConsumer(replyQueue);
consumer.setMessageListener(new LpsListener());
queueConnection.start();
producer=session.createProducer(queue);
message=session.createMapMessage();
message.setJMSReplyTo(replyQueue);
producer.send(message);
和我的 MDB:(部分在 OnMessage 中)
msg=(MapMessage)message;
String memId=msg.getString("MemberId");
int fine=mmr.getFine(memId);
queueConnection=queueConnectionFactory.createConnection();
replyDest=msg.getJMSReplyTo();
replyCorrelationMsgId=msg.getJMSMessageID();
queueSession=queueConnection.createSession(true, 0);
queueProducer=queueSession.createProducer(replyDest);
replyMsg=createReplyMsg(queueSession, replyCorrelationMsgId);
queueProducer.send(replyMsg);
private ObjectMessage createReplyMsg(Session session, String msgId)throws JMSException{
ObjectMessage replyMsg=session.createObjectMessage();
replyMsg.setIntProperty("fine", fine);
replyMsg.setJMSCorrelationID(msgId);
return replyMsg;
}