List of usage examples for javax.jms Message getBody
<T> T getBody(Class<T> c) throws JMSException;
From source file:org.sample.send.receive.MessageSenderAsync.java
public void sendMessage(String message) { try {//from w ww .j av a 2 s. c om context.createProducer().setAsync(new CompletionListener() { @Override public void onCompletion(Message msg) { try { System.out.println(msg.getBody(String.class)); } catch (JMSException ex) { Logger.getLogger(MessageSenderAsync.class.getName()).log(Level.SEVERE, null, ex); } } @Override public void onException(Message msg, Exception e) { try { System.out.println(msg.getBody(String.class)); } catch (JMSException ex) { Logger.getLogger(MessageSenderAsync.class.getName()).log(Level.SEVERE, null, ex); } } }); } catch (RuntimeException e) { System.out.println("Caught RuntimeException trying to invoke setAsync - not permitted in Java EE"); } context.createProducer().send(syncQueue, message); context.createProducer().send(asyncQueue, message); }
From source file:org.apache.openejb.activemq.JMS2AMQTest.java
@Test public void cdiListenerAPI() throws InterruptedException { final String text = TEXT + "4"; final AtomicReference<Throwable> error = new AtomicReference<>(); final CountDownLatch ready = new CountDownLatch(1); final CountDownLatch over = new CountDownLatch(1); new Thread() { {/*from w ww . j a v a 2 s . c o m*/ setName(JMS2AMQTest.class.getName() + ".cdiListenerAPI#receiver"); } @Override public void run() { final ContextsService contextsService = WebBeansContext.currentInstance().getContextsService(); contextsService.startContext(RequestScoped.class, null); try { final JMSConsumer consumer = context.createConsumer(destination3); consumer.setMessageListener(new MessageListener() { @Override public void onMessage(final Message message) { try { assertEquals(text, message.getBody(String.class)); } catch (final Throwable e) { error.set(e); } finally { over.countDown(); consumer.close(); } } }); ready.countDown(); } catch (final Throwable t) { error.set(t); } finally { try { over.await(1, TimeUnit.MINUTES); } catch (final InterruptedException e) { Thread.interrupted(); } contextsService.endContext(RequestScoped.class, null); } } }.start(); ready.await(1, TimeUnit.MINUTES); // now send the message try (final JMSContext context = cf.createContext()) { context.createProducer().send(destination3, text); } catch (final JMSRuntimeException ex) { fail(ex.getMessage()); } over.await(1, TimeUnit.MINUTES); // ensure we got the message and no exception final Throwable exception = error.get(); if (exception != null) { exception.printStackTrace(); } assertNull(exception == null ? "ok" : exception.getMessage(), exception); }
From source file:org.apache.openejb.activemq.JMS2AMQTest.java
@Test public void receiveGetBody() throws InterruptedException { final String text = TEXT + "2"; final AtomicReference<Throwable> error = new AtomicReference<>(); final CountDownLatch ready = new CountDownLatch(1); final CountDownLatch over = new CountDownLatch(1); new Thread() { @Override//from w ww . j av a 2s.co m public void run() { { setName(JMS2AMQTest.class.getName() + ".receiveGetBody#receiver"); } try (final JMSContext context = cf.createContext()) { try (final JMSConsumer consumer = context.createConsumer(destination2)) { ready.countDown(); final Message receive = consumer.receive(TimeUnit.MINUTES.toMillis(1)); assertEquals(text, receive.getBody(String.class)); } } catch (final Throwable ex) { error.set(ex); } finally { over.countDown(); } } }.start(); ready.await(1, TimeUnit.MINUTES); sleep(150); // just to ensure we called receive already // now send the message try (final JMSContext context = cf.createContext()) { context.createProducer().send(destination2, text); } catch (final JMSRuntimeException ex) { fail(ex.getMessage()); } over.await(1, TimeUnit.MINUTES); // ensure we got the message and no exception final Throwable exception = error.get(); if (exception != null) { exception.printStackTrace(); } assertNull(exception == null ? "ok" : exception.getMessage(), exception); }