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