KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > example > JMSLogger


1 package example;
2
3 import java.io.*;
4 import java.util.*;
5 import javax.jms.*;
6 import javax.ejb.*;
7 import javax.servlet.*;
8 import javax.servlet.http.*;
9
10 public class JMSLogger extends HttpServlet
11   implements MessageDrivenBean, MessageListener {
12
13   private transient MessageDrivenContext _messageDrivenContext = null;
14   private static LinkedList<String JavaDoc> _messageLog = new LinkedList<String JavaDoc>();
15
16   public void setMessageDrivenContext(MessageDrivenContext messageDrivenContext)
17     throws EJBException
18   {
19     _messageDrivenContext = messageDrivenContext;
20   }
21
22   public void ejbCreate()
23   {
24   }
25
26   public void onMessage(Message message)
27   {
28     try {
29       synchronized (_messageLog) {
30     if (_messageLog.size() > 10)
31       _messageLog.remove(0);
32     
33         if (message instanceof TextMessage)
34           _messageLog.add(((TextMessage) message).getText());
35         else
36           _messageLog.add(message.getClass().getName());
37       }
38     } catch (JMSException e) {
39       _messageDrivenContext.setRollbackOnly();
40     }
41   }
42
43   public void ejbRemove()
44   {
45   }
46
47   public void service(HttpServletRequest request,
48                       HttpServletResponse response)
49     throws ServletException, IOException
50   {
51     PrintWriter out = response.getWriter();
52     ServletContext application = getServletContext();
53     HttpSession session = request.getSession();
54
55     try {
56       out.println("<html>");
57       out.println("<body>");
58       out.println("<ul>");
59
60       synchronized (_messageLog) {
61         for (String JavaDoc messageString : _messageLog) {
62           out.println("<li>" + messageString + "</li>");
63         }
64       }
65
66       out.println("</ul>");
67       out.println("</body>");
68       out.println("</html>");
69     } catch (Exception JavaDoc e) {
70       throw new ServletException(e);
71     }
72   }
73 }
74
75
Popular Tags