-
Notifications
You must be signed in to change notification settings - Fork 88
guide jms
travis edited this page Jul 9, 2019
·
8 revisions
Table of Contents
Messaging in Java is done using the JMS standard from JEE.
For messaging you need to choose a JMS provider such as:
-
Oracle Advanced Queuing (esp. if you already use Oracle RDBMS)
As a receiver of messages is receiving data from other systems it is located in the service-layer.
A JmsListener
is a class listening and consuming JMS messages. It should carry the suffix JmsListener
and implement the MessageListener
interface or have its listener method annotated with @JmsListener
. This is illustrated by the following example:
@Named
@Transactional
public class BookingJmsListener /* implements MessageListener */ {
@Inject
private Bookingmanagement bookingmanagement;
@Inject
private MessageConverter messageConverter;
@JmsListener(destination = "BOOKING_QUEUE", containerFactory = "jmsListenerContainerFactory")
public void onMessage(Message message) {
try {
BookingTo bookingTo = (BookingTo) this.messageConverter.fromMessage(message);
this.bookingmanagement.importBooking(bookingTo);
} catch (MessageConversionException | JMSException e) {
throw new InvalidMessageException(message);
}
}
}
A sender of messages is writing to a data storage and hence is located in the dataaccess-layer.
This documentation is licensed under the Creative Commons License (Attribution-NoDerivatives 4.0 International).