SwiftMQ
Resin 3.0

Features
Installation
Configuration
Web Applications
IOC/AOP
Resources
JSP
Quercus
Servlets and Filters
Databases
Admin (JMX)
CMP
EJB
Amber
EJB 3.0
Security
XML and XSLT
XTP
JMS
Performance
Protocols
Third-party
Troubleshooting/FAQ

IDE's
Scottit
Groovy
PHP
Code Libraries
JMS
JCA Resources
JMX
SSL Accelerators

SwiftMQ
OpenJMS
JMS
JMS
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) {
      }
    }
  }
}


JMS
JMS
OpenJMS
Copyright © 1998-2006 Caucho Technology, Inc. All rights reserved.
Resin® is a registered trademark, and HardCoretm and Quercustm are trademarks of Caucho Technology, Inc.