示例#1
0
  // Implementation methods
  // -------------------------------------------------------------------------
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    try {
      WebClient client = WebClient.getWebClient(request);
      Session session = client.getSession();
      Queue queue = getQueue(request, session);
      if (queue == null) {
        throw new ServletException("No queue URI specified");
      }

      String msgId = request.getParameter("msgId");
      if (msgId == null) {
        MessageRenderer renderer = getMessageRenderer(request);
        configureRenderer(request, renderer);

        String selector = getSelector(request);
        QueueBrowser browser = session.createBrowser(queue, selector);
        renderer.renderMessages(request, response, browser);
      } else {
        XmlMessageRenderer renderer = new XmlMessageRenderer();
        QueueBrowser browser = session.createBrowser(queue, "JMSMessageID='" + msgId + "'");
        if (!browser.getEnumeration().hasMoreElements()) {
          response.sendError(HttpServletResponse.SC_NOT_FOUND);
          return;
        }
        Message message = (Message) browser.getEnumeration().nextElement();

        PrintWriter writer = response.getWriter();
        renderer.renderMessage(writer, request, response, browser, message);
        writer.flush();
      }
    } catch (JMSException e) {
      throw new ServletException(e);
    }
  }
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    String[] stocks = request.getParameterValues("stocks");
    if (stocks == null || stocks.length == 0) {
      out.println(
          "<html><body>No <b>stocks</b> query parameter specified. Cannot publish market data</body></html>");
    } else {
      Integer total = (Integer) request.getSession(true).getAttribute("total");
      if (total == null) {
        total = Integer.valueOf(0);
      }

      int count = getNumberOfMessages(request);
      total = Integer.valueOf(total.intValue() + count);
      request.getSession().setAttribute("total", total);

      try {
        WebClient client = WebClient.getWebClient(request);
        for (int i = 0; i < count; i++) {
          sendMessage(client, stocks);
        }
        out.print("<html><head><meta http-equiv='refresh' content='");
        String refreshRate = request.getParameter("refresh");
        if (refreshRate == null || refreshRate.length() == 0) {
          refreshRate = "1";
        }
        out.print(refreshRate);
        out.println("'/></head>");
        out.println(
            "<body>Published <b>"
                + escape(Integer.toString(count))
                + "</b> of "
                + escape(Integer.toString(total))
                + " price messages.  Refresh = "
                + escape(refreshRate)
                + "s");
        out.println("</body></html>");

      } catch (JMSException e) {
        out.println(
            "<html><body>Failed sending price messages due to <b>" + e + "</b></body></html>");
        log("Failed to send message: " + e, e);
      }
    }
  }