JMS 从 EJB 获取 message/response
JMS Get message/response from EJB
这是我的发件人class:
private void sendJMSMessage(Object data) throws JMSException {
Connection con = null;
Session s = null;
try {
con = context.createConnection();
s = con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
MessageProducer producer = s.createProducer(glassFishQueue);
ObjectMessage msg = s.createObjectMessage();
ArrayList list = new ArrayList();
list.add("name");
msg.setObject(p);
producer.send(msg);
}
还有我的消息驱动 Bean:
public void onMessage(Message message) {
try {
ObjectMessage om = (ObjectMessage) message;
ArrayList al = (ArrayList) om.getObject();
System.out.println("Msg: " + al.get(0));
} catch (JMSException jex) {
System.out.println("Exception: " + jex);
}
我收到发件人 class 发送的消息,但我需要从 EJB 返回发件人的消息。
我正在做一个带有 table 的网络客户端,但我需要填写它从远程数据库获取信息,我真的不知道我应该用什么来做这件事,所以如果我做对了,请告诉我或告诉我任何建议
谢谢你
JMS
是异步的,所以它不能以开箱即用的请求-响应方式工作。
如果您想发送回复,一种方法是使用单独的队列。您的 MDB
可以将响应写入第二个队列,您的客户端可以通过创建 QueueReceiver
.
来收听此队列
另一种方法是使用QueueRequestor
。来自 javadocs:
It creates a TemporaryQueue for the responses and provides a request
method that sends the request message and waits for its reply.
这是我的发件人class:
private void sendJMSMessage(Object data) throws JMSException {
Connection con = null;
Session s = null;
try {
con = context.createConnection();
s = con.createSession(false, Session.CLIENT_ACKNOWLEDGE);
MessageProducer producer = s.createProducer(glassFishQueue);
ObjectMessage msg = s.createObjectMessage();
ArrayList list = new ArrayList();
list.add("name");
msg.setObject(p);
producer.send(msg);
}
还有我的消息驱动 Bean:
public void onMessage(Message message) {
try {
ObjectMessage om = (ObjectMessage) message;
ArrayList al = (ArrayList) om.getObject();
System.out.println("Msg: " + al.get(0));
} catch (JMSException jex) {
System.out.println("Exception: " + jex);
}
我收到发件人 class 发送的消息,但我需要从 EJB 返回发件人的消息。 我正在做一个带有 table 的网络客户端,但我需要填写它从远程数据库获取信息,我真的不知道我应该用什么来做这件事,所以如果我做对了,请告诉我或告诉我任何建议
谢谢你
JMS
是异步的,所以它不能以开箱即用的请求-响应方式工作。
如果您想发送回复,一种方法是使用单独的队列。您的 MDB
可以将响应写入第二个队列,您的客户端可以通过创建 QueueReceiver
.
另一种方法是使用QueueRequestor
。来自 javadocs:
It creates a TemporaryQueue for the responses and provides a request method that sends the request message and waits for its reply.