1 Reply Latest reply on May 5, 2011 8:06 AM by mjustin

    Stomp text message appearing as JMS BytesMessage in JBoss AS 6

    mjustin

      This Stomp frame

       

      SEND
      destination:jms.queue.TOOL.DEFAULT
      content-length:100
      message-type:text
      
      Message: 0 sent at: 05.05.2011 09:51:51
      

       

      appears as a JMS BytesMessage in JBoss AS 6.0.0.Final, is this by design?

       

      I am testing with this code in a JavaServer Faces backing bean, but will try to reproduce it with a simple HornetQ client app.

       

      package demo;
      
      import java.util.logging.*;
      import javax.annotation.Resource;
      import javax.faces.bean.ManagedBean;
      import javax.jms.*;
      
      @ManagedBean
      public class Bean {
          @Resource(mappedName = "java:/ConnectionFactory")
          private ConnectionFactory connectionFactory;
          @Resource(mappedName = "/queue/TOOL.DEFAULT")
          private Queue queue;
      
          public String getMessage() {
              String result = "no message";
              Logger.getLogger(Bean.class.getName()).log(Level.INFO, "checking");
              try {
                  Connection connection = connectionFactory.createConnection();
                  connection.start();
                  Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                  MessageConsumer consumer = session.createConsumer(queue);
                  Message message = consumer.receiveNoWait();
                  if (message != null) {
                      if (message instanceof BytesMessage) {
                        result = "bytes - " + ((BytesMessage) message).getBodyLength();
                      } else if (message instanceof TextMessage) {
                          result = ((TextMessage) message).getText();
                      }
                  } else {
                      Logger.getLogger(Bean.class.getName()).log(Level.INFO, "no message...");
                  }
                  connection.close();
              } catch (JMSException ex) {
                  Logger.getLogger(Bean.class.getName()).log(Level.SEVERE, ex.getMessage());
              }
              return result;
          }
      }
      

       

      Regards,

      Michael Justin