001 /*
002 * Copyright (C) The Apache Software Foundation. All rights reserved.
003 *
004 * This software is published under the terms of the Apache Software License
005 * version 1.1, a copy of which has been included with this distribution in
006 * the LICENSE file.
007 *
008 * $Id: Messagelet.java 155459 2005-02-26 13:24:44Z dirkv $
009 */
010 package org.apache.commons.messagelet;
011
012 import java.io.IOException;
013
014 import javax.jms.JMSException;
015 import javax.servlet.GenericServlet;
016 import javax.servlet.ServletException;
017 import javax.servlet.ServletRequest;
018 import javax.servlet.ServletResponse;
019
020 /** <p><code>Messengerlet</code> the base class for a servlet which processes
021 * JMS messages via a MessageletRequest and MessageletResponse.</p>
022 *
023 * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
024 * @version $Revision: 155459 $
025 */
026 public abstract class Messagelet extends GenericServlet {
027
028 public abstract void service( MessageletRequest request, MessageletResponse response )
029 throws IOException, JMSException, ServletException;
030
031
032 public void service( ServletRequest req, ServletResponse res ) throws ServletException, IOException {
033 MessageletRequest request;
034 MessageletResponse response;
035
036 try {
037 request = (MessageletRequest) req;
038 response = (MessageletResponse) res;
039
040 }
041 catch (ClassCastException e) {
042 throw new ServletException("non-Message request or response");
043 }
044
045 try {
046 service(request, response);
047 }
048 catch (JMSException e) {
049 throw new ServletException(e);
050 }
051 }
052 }