| = Tomcat and ActiveMQ |
| :jbake-type: page |
| :jbake-status: published |
| |
| Tomcat + Java EE = TomEE, the Java Enterprise Edition of Tomcat. |
| With TomEE you get Tomcat with ActiveMQ added and integrated and ready to go! |
| |
| In a plain Servlet, Filter or Listener you can do fun things like injection of JMS Topics or Queues: |
| |
| [source,java] |
| ---- |
| import javax.annotation.Resource; |
| import javax.servlet.http.HttpServlet; |
| import javax.jms.Topic; |
| import javax.jms.Queue; |
| import javax.jms.ConnectionFactory; |
| |
| public class MyServet extends HttpServlet { |
| |
| @Resource(name = "foo") |
| private Topic fooTopic; |
| |
| @Resource(name = "bar") |
| private Queue barQueue; |
| |
| @Resource |
| private ConnectionFactory connectionFactory; |
| |
| @Override |
| protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { |
| //... |
| |
| Connection connection = connectionFactory.createConnection(); |
| connection.start(); |
| |
| // Create a Session |
| Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); |
| |
| // Create a MessageProducer from the Session to the Topic or Queue |
| MessageProducer producer = session.createProducer(fooTopic); |
| producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); |
| |
| // Create a message |
| TextMessage message = session.createTextMessage("Hello World!"); |
| |
| // Tell the producer to send the message |
| producer.send(message); |
| |
| //... |
| } |
| |
| } |
| ---- |
| |
| No need to add even a single library! |
| In the above scenario even the "foo" Topic and the "bar" Queue would be automatically created with no configuration necessary. |
| |
| xref:download-ng.adoc[Download] TomEE and you're minutes away from a functioning JMS application on Tomcat. |
| |
| include::apache-tomee.adoc[leveloffset=+1] |