我是新手,如果我的错误看起来很愚蠢,请原谅我。我正在使用带有 glassfish 和 eclipse 的 active mq。我在 glass fish 中创建了 JMS 资源,例如 Destination Resources 和 Connection Factories。Active Mq 正在运行,我在 glassfish 上部署了消息驱动 bean,没有发生异常,但我在 active mq 上找不到我的队列,控制台上也没有打印消息。
我基本上使用这里给出的例子:https ://www.javatpoint.com/message-driven-bean
public class MessageSender {
public static void sendMessage() throws JMSException, NamingException {
InitialContext ctx = new InitialContext();
QueueConnectionFactory f = (QueueConnectionFactory) ctx.lookup("jms/myQueueConnectionFactory");
QueueConnection connection = f.createQueueConnection();
connection.start();
QueueSession ses = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue t = (Queue) ctx.lookup("jms/myQueue");
QueueSender sender = ses.createSender(t);
TextMessage message=ses.createTextMessage("Hello !!! Welcome to the world of ActiveMQ.");
sender.send(message);
connection.close();
}
}
@MessageDriven(mappedName = "jms/myQueue")
公共类 MessageReceiver 实现 MessageListener {
/**
* Default constructor.
*/
public MessageReceiver() {
// TODO Auto-generated constructor stub
}
/**
* @see MessageListener#onMessage(Message)
*/
public void onMessage(Message message) {
// TODO Auto-generated method stub
TextMessage m=(TextMessage) message;
try{
System.out.println("message received: "+m.getText());
}catch(Exception e){System.out.println(e);}
}