gpt4 book ai didi

java - JMS 从 EJB 获取消息/响应

转载 作者:行者123 更新时间:2023-11-30 07:54:22 24 4
gpt4 key购买 nike

这是我的发送者类:

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);
}

我收到了从发送者类发送的消息,但我需要从 EJB 返回给发送者的消息。我正在做一个带有表格的网络客户端,但我需要填充它以远程从数据库获取信息,我真的不知道应该使用什么来做到这一点,所以如果我做对了,请告诉我或告诉我任何建议

谢谢你

最佳答案

JMS 是异步的,因此它不能以开箱即用的请求-响应方式工作。

如果您想发送回复,一种方法是使用单独的队列。您的 MDB 可以将响应写入第二个队列,并且您的客户端可以通过创建 QueueReceiver 来监听此队列。 .

另一种方法是使用 QueueRequestor 。来自javadoc:

It creates a TemporaryQueue for the responses and provides a request method that sends the request message and waits for its reply.

herehere对于 QueueRequestor 示例。

关于java - JMS 从 EJB 获取消息/响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32882260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com