SwiftMQ
Resin 3.1

Documentation
Examples
Changes

Overview
Installation
Configuration
Quercus
SOA/IoC
JSP
Servlets and Filters
Admin (JMX)
EJB
Amber
Security
Performance
Hessian
XML and XSLT
Third-party
Troubleshooting/FAQ

IDE's
Scottit
Groovy
SwiftMQ
OpenJMS
Hibernate
Database
Groovy
Third-party
OpenJMS

SwiftMQ

The SwiftMQ client is configured by adding a jndi-link to the web.xml or resin.conf.

Resin needs the swiftmq.jar from the SwiftMQ distribution in the classpath, either in resin/lib/swiftmq.jar or in WEB-INF/lib.

web.xml
<web-app>
  <jndi-link>
    <jndi-name>java:comp/env/jms</jndi-name>
    <jndi-factory>com.swiftmq.jndi.InitialContextFactoryImpl</jndi-factory>
    <init-param java.naming.provider.url="smqp://localhost:4001/timeout=10000"/>
  </jndi-link>

The SwiftMQ router will need to be started as a separate process.

A sample servlet using the above SwiftMQ configuration sends a text message to the queue.

SendServlet.java
package qa;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
import javax.jms.*;

public class SendServlet extends HttpServlet {
  private QueueConnectionFactory queueFactory;
  private Queue queue;

  public void init()
    throws ServletException
  {
    try {
      Context ic = new InitialContext();
      Context jms = (Context) ic.lookup("java:comp/env/jms");

      queueFactory = (QueueConnectionFactory)
        jms.lookup("QueueConnectionFactory");

      queue = (Queue) jms.lookup("testqueue@router1");
    } catch (Exception e) {
      throw new ServletException(e);
    }
  }

  public void service(HttpServletRequest req,
                      HttpServletResponse res)
    throws IOException, ServletException
  {
    PrintWriter out = res.getWriter();

    QueueConnection conn = null;

    try {
      conn = queueFactory.createQueueConnection();
      QueueSession queueSession =
         conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
      QueueSender queueSender = queueSession.createSender(queue);
      TextMessage message = queueSession.createTextMessage();

      message.setText("Test message");

      out.println("Sending message: " + message.getText());
      queueSender.send(message);
    } catch (Exception e) {
      throw new ServletException(e);
    } finally {
      try {
        conn.close();
      } catch (Exception e) {
      }
    }
  }
}

Groovy
Third-party
OpenJMS
Copyright © 1998-2006 Caucho Technology, Inc. All rights reserved.
Resin ® is a registered trademark, and Quercustm, Ambertm, and Hessiantm are trademarks of Caucho Technology.