| 1 package edu.rice.rubis.beans.servlets; 2 3 import java.io.IOException ; 4 5 import javax.jms.MapMessage ; 6 import javax.jms.Session ; 7 import javax.jms.TextMessage ; 8 import javax.jms.Topic ; 9 import javax.jms.TopicConnection ; 10 import javax.jms.TopicConnectionFactory ; 11 import javax.jms.TopicRequestor ; 12 import javax.jms.TopicSession ; 13 import javax.naming.Context ; 14 import javax.naming.InitialContext ; 15 import javax.servlet.ServletException ; 16 import javax.servlet.http.HttpServlet ; 17 import javax.servlet.http.HttpServletRequest ; 18 import javax.servlet.http.HttpServletResponse ; 19 20 26 public class BrowseCategories extends HttpServlet  27 { 28 29 private void printError(String errorMsg, ServletPrinter sp) 30 { 31 sp.printHTMLheader("RUBiS ERROR: Browse Categories"); 32 sp.printHTML("<h3>Your request has not been processed due to the following error :</h3><br>"); 33 sp.printHTML(errorMsg); 34 sp.printHTMLfooter(); 35 } 36 37 44 public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException , ServletException  45 { 46 ServletPrinter sp = null; 47 String region=null; 48 String username=null, password=null; 49 Context initialContext = null; 50 51 sp = new ServletPrinter(response, "BrowseCategories"); 52 sp.printHTMLheader("RUBiS available categories"); 53 sp.printHTML("<h2>Currently available categories</h2><br>"); 54 try 55 { 56 initialContext = new InitialContext (); 57 } 58 catch (Exception e) 59 { 60 printError("Cannot get initial context for JNDI: " +e+"<br>", sp); 61 return ; 62 } 63 64 region = request.getParameter("region"); 65 username = request.getParameter("nickname"); 66 password = request.getParameter("password"); 67 68 TopicConnectionFactory topicFactory = null; 69 TopicConnection connection = null; 70 TopicSession session = null; 71 Topic topic = null; 72 String html; 73 try 74 { 75 topicFactory = (TopicConnectionFactory )initialContext.lookup(Config.TopicConnectionFactoryName); 77 connection = topicFactory.createTopicConnection(); 79 topic = (Topic ) initialContext.lookup(Config.PrefixTopicName+"topicBrowseCategories"); 81 session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); } 84 catch (Exception e) 85 { 86 sp.printHTML("Cannot connect to message bean MDB_BrowseCategories : " +e+"<br>"); 87 return ; 88 } 89 try 90 { 91 TopicRequestor requestor = new TopicRequestor (session, topic); 93 MapMessage message = session.createMapMessage(); 95 if (region != null) 97 message.setString("region", region); 98 if (username != null) 99 message.setString("nickname", username); 100 if (password != null) 101 message.setString("password", password); 102 message.setJMSCorrelationID("category"); 103 connection.start(); TextMessage reply = (TextMessage )requestor.request(message); 106 connection.stop(); 107 html = reply.getText(); 109 requestor.close(); connection.close(); 112 } 113 catch (Exception e) 114 { 115 sp.printHTML("Cannot get the list of categories: " +e+"<br>"); 116 return ; 117 } 118 sp.printHTML(html); 119 sp.printHTMLfooter(); 120 } 121 122 130 public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException , ServletException  131 { 132 doGet(request, response); 133 } 134 135 } 136 | Popular Tags |