Java Reference
In-Depth Information
}
@Override
public void onMessage(Message message) {
} }
In the generated code, all we need to do is implement the body of the
onMessage()
method, and deploy our project. The
onMessage()
method will process any mes-
sages on the JMS destination our message-driven bean is receiving messages from.
We can write any arbitrary code in the
onMessage()
method, the possibilities are
endless, however, this method is typically used to save data from the message into a
database, or to write some output into a log. In our example, we will simply send the
contents of the message to the stdout log of our application server.
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println("Received message:" +
textMessage.getText());
} catch (JMSException ex) {
Logger.getLogger(
MessageReceiverBean.class.getName()).log(
Level.SEVERE, null, ex);
} }
Notice that we had to cast the message parameter to the actual subinterface that was
sent to the message destination, which in our case is
javax.jms.TextMessage
. To
obtain the message contents, we invoked the
getText()
method of
TextMessage
,
this method throws
JMSException
, because of this, we had to wrap its invocation in
a
try
/
catch
block.
NetBeans will remind us that we need to catch
JMSException
by
underlining the offending code with a wiggly red line, by hitting
Alt+Enter
at the offending line we can have NetBeans generate the
try
/
catch
block automatically.