O'Reilly logo

Java Enterprise in a Nutshell, Third Edition by William Crawford, Jim Farley

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Message-Driven Beans

Message-driven EJBs are components that are managed by an EJB container like other EJBs, but they are invoked asynchronously by clients using JMS messages rather than method calls. In terms of their runtime lifecycle and container management, message-driven beans are closest in nature to stateless session beans. They are invoked indirectly and asynchronously, so they don’t maintain conversational state on behalf of clients, and they can be pooled by the container to handle incoming messages.

From the client’s perspective, a message-driven bean is seen as simply another JMS destination with which to exchange messages. Clients do not even know that an EJB container is involved—they simply perform the usual steps to establish a session with the JMS queue or topic and exchange messages with it. We only touch on these JMS-specific details here—for more details, see Chapter 11.

Message-driven EJBs are the simplest to implement since they require only a bean implementation class. The only client interaction with them is through JMS messages, so there’s no need for client interfaces or home interfaces. A message-driven bean must implement both the MessageDrivenBean interface from the EJB API as well as the MessageListener interface from JMS. The bean’s lifecycle is managed by the EJB container, including its association with a JMS destination. While a simple, standalone JMS MessageListener needs to be programmatically associated with its message destination, the EJB ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required