Hi Charles, stock portfolio example sends XML in a text message to the Ajax client. Therefore, you'll get the response like this (full body).
<ajax-response> <response id='stocks' destination='topic://STOCKS.*' ><price stock='BEAS' bid='94.08395193508605' offer='94.17803588702112' movement='up'/></response> </ajax-response> the "message object" you see is just the <price ... /> xml text and getAttribute() is JavaScript way of handling XML tag attributes. So, there is no "definition" of message object, it's just what you send to the broker; text if it is a TextMessage or object.toString in case of object message. Also you can find _amq.js which contains the whole Ajax JavaScript logic here http://svn.apache.org/viewvc/activemq/trunk/activemq-web/src/main/resources/org/apache/activemq/web/_amq.js?view=markup Cheers -- Dejan Bosanac http://www.ttmsolutions.com - get a free ActiveMQ user guide ActiveMQ in Action - http://www.manning.com/snyder/ Scripting in Java - http://www.scriptinginjava.net cmoulliard wrote: > Hi, > > Additional question : What is the javascript class of the message returned > (DOM, XMLHTTPResuest, ....) ? > > The existing doc does not help us because in the two example, we saw that we > can use message.getAttribute or message.getChildNodes[0], ... ? > > KR, > > Charles Moulliard > > > cmoulliard wrote: > >> Hi, >> >> I would like to know where the javascript object Message used by >> AJAX/ActiveMq in a HTML page is defined ? I see in the portfolio example >> that we can use the following method "message.getAttribute('stock')" to >> access part of the xml message returned by the queue engine through the >> MessageListenerServlet but I would like to know what are the methods / >> variables available for this message object (which is normally a mirror of >> the jax.jms.Message object) ? >> >> To be more precise, here is a copy/paste of the portfolio.js script of the >> example where message appears at the line _price: function(message) >> >> var priceHandler = { >> _price: function(message) { >> if (message != null) { >> var price = parseFloat(message.getAttribute('bid')) >> var symbol = message.getAttribute('stock') >> var movement = message.getAttribute('movement') >> if (movement == null) { >> movement = 'up' >> } >> >> var row = document.getElementById(symbol) >> if (row) { >> // perform portfolio calculations >> var value = asFloat(find(row, 'amount')) * price >> var pl = value - asFloat(find(row, 'cost')) >> >> // now lets update the HTML DOM >> find(row, 'price').innerHTML = fixedDigits(price, 2) >> find(row, 'value').innerHTML = fixedDigits(value, 2) >> find(row, 'pl').innerHTML = fixedDigits(pl, 2) >> find(row, 'price').className = movement >> find(row, 'pl').className = pl >= 0 ? 'up' : 'down' >> } >> } >> } >> }; >> >> function portfolioPoll(first) >> { >> if (first) >> { >> amq.addListener('stocks','topic://STOCKS.*',priceHandler._price); >> } >> } >> >> amq.addPollHandler(portfolioPoll); >> >> Remark : addtiaional question >> - Who will cal the function portfolioPoll(first) function ? >> - How is the parameter first which is a boolean setted ? >> >> KR, >> >> Charles Moulliard >> >> > > > ----- > Enterprise Architect > > Xpectis > 12, route d'Esch > L-1470 Luxembourg > > Phone +352 25 10 70 470 > Mobile +352 621 45 36 22 > > e-mail : [EMAIL PROTECTED] > web site : www.xpectis.com www.xpectis.com > My Blog : http://cmoulliard.blogspot.com/ http://cmoulliard.blogspot.com/ >