Level.SEVERE, null, ex);
Notice that we had to cast the message parameter to the actual sub-interface 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.
At this point we are ready to try our application. We can do so by simply
right-clicking on our Enterprise Application Project and selecting Run . At this point
the application will be deployed, and the application client project will be executed,
sending a message to our message queue. Our EJBs will also be deployed, and the
application server will automatically assign one to process the message sent to the
queue. We can see the output of the message driven bean in the application
You might notice an exception in the screenshot above. This is due to a
known GlassFish issue and can safely be ignored.
As we can see, NetBeans automates most of the "grunt work" needed to write
applications taking advantage of the JMS API, leaving us to only write the business
logic part that is specific to our application.