セッション Bean が 1 つの ejb プロジェクトで作成され、キューを使用して別のプロジェクトのメッセージ駆動型 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;
}