Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
独立Java以将JMS消息出列_Java_Jakarta Ee_Jms - Fatal编程技术网

独立Java以将JMS消息出列

独立Java以将JMS消息出列,java,jakarta-ee,jms,Java,Jakarta Ee,Jms,任何一个都可以提供示例程序来在Java中对消息进行出列吗?我想要一个独立的java程序来完成这个任务 假设oracleha使用JMS_TEXT_MESSAGE将消息排入队列,队列myqueue中的有效负载类型的所有者是myowner&现在我想使用Java将这些消息移出队列。任何一个都可以提供独立Java的示例程序吗 谢谢 @Ratha,我试过你的样品&我可以浏览所有的信息&效果非常好 但是,当我尝试使用这些消息时,我认为它们将从队列中删除并通过以下行显示给我: System.out.print

任何一个都可以提供示例程序来在Java中对消息进行出列吗?我想要一个独立的java程序来完成这个任务

假设oracleha使用JMS_TEXT_MESSAGE将消息排入队列,队列myqueue中的有效负载类型的所有者是myowner&现在我想使用Java将这些消息移出队列。任何一个都可以提供独立Java的示例程序吗

谢谢

@Ratha,我试过你的样品&我可以浏览所有的信息&效果非常好

但是,当我尝试使用这些消息时,我认为它们将从队列中删除并通过以下行显示给我:

 System.out.println("MESSAGE RECEIVED " + msg.getText());
 MessageConsumer consumer = session.createConsumer(queue);

Exception in thread "main" java.lang.AbstractMethodError: oracle.jms.AQjmsSession.createConsumer(Ljavax/jms/Destination;)Ljavax/jms/MessageConsumer;
at OracleAQClient.consumeMessage(OracleAQClient.java:141)
at OracleAQClient.main(OracleAQClient.java:159)
但是,它在下面的行中给了我错误:

 System.out.println("MESSAGE RECEIVED " + msg.getText());
 MessageConsumer consumer = session.createConsumer(queue);

Exception in thread "main" java.lang.AbstractMethodError: oracle.jms.AQjmsSession.createConsumer(Ljavax/jms/Destination;)Ljavax/jms/MessageConsumer;
at OracleAQClient.consumeMessage(OracleAQClient.java:141)
at OracleAQClient.main(OracleAQClient.java:159)
你能帮我解决这个错误吗


谢谢

您可以更正特定于供应商或与供应商无关的代码。。 要使消息出列,请使用以下代码块

 public static void consumeMessage(String user, String queueName) {  
  Queue queue;
  try {
   QueueConnection QCon = getConnection();  
   Session session = QCon.createQueueSession(false,Session.CLIENT_ACKNOWLEDGE);
   QCon.start();
   queue = ((AQjmsSession) session).getQueue(user, queueName);
   MessageConsumer consumer = session.createConsumer(queue);
   TextMessage msg = (TextMessage) consumer.receive();
   System.out.println("MESSAGE RECEIVED " + msg.getText());

   consumer.close();
   session.close();
   QCon.close();
  } catch (JMSException e) {  
   e.printStackTrace();
  }
 }
我已经写了,这些帖子包含了更多的详细代码


您应该能够在jmx控制台中删除队列中的消息。@Mike:在这里您将无法获得整个程序。只要解释一下你到目前为止所做的一切。简单地链接到其他网站的答案并不是好的答案。