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 > _messageLog = new LinkedList<String >(); 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 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 e) { 70 throw new ServletException(e); 71 } 72 } 73 } 74 75 | Popular Tags |