You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by da...@apache.org on 2012/09/19 11:33:27 UTC

svn commit: r1387504 - /activemq/trunk/activemq-web/src/main/java/org/apache/activemq/web/MessageServlet.java

Author: davsclaus
Date: Wed Sep 19 09:33:27 2012
New Revision: 1387504

URL: http://svn.apache.org/viewvc?rev=1387504&view=rev
Log:
AMQ-4043: Fixed web demo for simple send/receive.

Modified:
    activemq/trunk/activemq-web/src/main/java/org/apache/activemq/web/MessageServlet.java

Modified: activemq/trunk/activemq-web/src/main/java/org/apache/activemq/web/MessageServlet.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web/src/main/java/org/apache/activemq/web/MessageServlet.java?rev=1387504&r1=1387503&r2=1387504&view=diff
==============================================================================
--- activemq/trunk/activemq-web/src/main/java/org/apache/activemq/web/MessageServlet.java (original)
+++ activemq/trunk/activemq-web/src/main/java/org/apache/activemq/web/MessageServlet.java Wed Sep 19 09:33:27 2012
@@ -131,7 +131,8 @@ public class MessageServlet extends Mess
                    String body = (String)client.getProducerTemplate().requestBody(point, text);
                    ActiveMQTextMessage answer = new ActiveMQTextMessage();
                    answer.setText(body);
-                   writeMessageResponse(response.getWriter(), answer);
+
+                   writeResponse(request, response, answer);
                } catch (Exception e) {
                    IOException ex = new IOException();
                    ex.initCause(e);
@@ -148,6 +149,8 @@ public class MessageServlet extends Mess
             // lets return a unique URI for reliable messaging
             response.setHeader("messageID", message.getJMSMessageID());
             response.setStatus(HttpServletResponse.SC_OK);
+            response.getWriter().write("Message sent");
+
         } catch (JMSException e) {
             throw new ServletException("Could not post JMS message: " + e, e);
         }
@@ -241,23 +244,34 @@ public class MessageServlet extends Mess
         try {
 
             // write a responds
-            response.setContentType(defaultContentType);
             PrintWriter writer = response.getWriter();
 
             // handle any message(s)
             if (message == null) {
                 // No messages so OK response of for ajax else no content.
-                response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+                response.setStatus(HttpServletResponse.SC_OK);
+                response.setContentType("text/plain");
+                writer.write("No message received");
+                writer.flush();
             } else {
                 // We have at least one message so set up the response
-                response.setStatus(HttpServletResponse.SC_OK);
+                messages = 1;
+
                 String type = getContentType(request);
                 if (type != null) {
                     response.setContentType(type);
+                } else {
+                    if (isXmlContent(message)) {
+                        response.setContentType(defaultContentType);
+                    } else {
+                        response.setContentType("text/plain");
+                    }
                 }
+                response.setStatus(HttpServletResponse.SC_OK);
 
                 setResponseHeaders(response, message);
                 writeMessageResponse(writer, message);
+                writer.flush();
             }
         } finally {
             if (LOG.isDebugEnabled()) {
@@ -285,6 +299,21 @@ public class MessageServlet extends Mess
         }
     }
 
+    protected boolean isXmlContent(Message message) throws JMSException {
+        if (message instanceof TextMessage) {
+            TextMessage textMsg = (TextMessage)message;
+            String txt = textMsg.getText();
+            if (txt != null) {
+                // assume its xml when it starts with <
+                if (txt.startsWith("<")) {
+                    return true;
+                }
+            }
+        }
+        // for any other kind of messages we dont assume xml
+        return false;
+    }
+
     public WebClient getWebClient(HttpServletRequest request) {
         String clientId = request.getParameter("clientId");
         if (clientId != null) {