Hi Alex, I think it's a bigger problem to pass and handle byte[] content in JavaScript. All patches are welcomed, of course :)
Cheers -- Dejan Bosanac - http://twitter.com/dejanb Open Source Integration - http://fusesource.com/ ActiveMQ in Action - http://www.manning.com/snyder/ Blog - http://www.nighttale.net On Fri, Jul 9, 2010 at 11:55 PM, Alex Dean <ad...@meteostar.com> wrote: > > On Jul 9, 2010, at 3:44 PM, Alex Dean wrote: > >> >> On Jul 9, 2010, at 1:50 PM, Alex Dean wrote: >> >>> I have a Ruby script which publishes a message to an ActiveMQ topic via >>> Stomp. I'm attempting to send these messages to the topic used by the demo >>> chat.html included in ActiveMQ, so I'm using the XML message format expected >>> by that page. chat.html is this one : >>> http://fisheye6.atlassian.com/browse/activemq/branches/activemq-5.3/activemq-web-demo/src/main/webapp/chat.html?r=HEAD >> >> My problem appears to be the same one described here : >> http://juretta.com/log/2009/05/24/activemq-jms-stomp/ >> >> Stomp messages which include a content-length header are converted to >> BytesMessages by ActiveMQ. Messages without a content-length header are >> converted to TextMessages. TextMessages are delivered to JavaScript OK via >> AJAX, but BytesMessages are not. >> >> If I hack the Ruby stomp code to not send a content-length header, my >> Ruby-published messages start appearing in chat.html. Is there a better way >> to solve this problem? > > For a little more background, http://activemq.apache.org/stomp.html says > that Stomp messages lacking a content-length header are converted to JMS > TextMessage instances. Messages containing a content-length header are > converted to BytesMessage instances. MessageListenerServlet.java makes no > attempt to send a BytesMessage to an ajax client, hence the empty message > when content-length is present. > > See writeMessageResponse in this class: > http://fisheye6.atlassian.com/browse/activemq/branches/activemq-5.3/activemq-web/src/main/java/org/apache/activemq/web/MessageListenerServlet.java?r=HEAD > > I'm trying to determine if it's feasible to try to handle BytesMessage > instances in MessageListenerServlet. Perhaps via BytesMessage.readUTF8()? > I'm not very familiar with ActiveMQ or JMS, so I'm not sure what the > implications of this might be. > > thanks, > alex >