ActiveMQ AJax Client

Posted by Lily on Stack Overflow See other posts from Stack Overflow or by Lily
Published on 2010-04-26T21:57:51Z Indexed on 2010/04/26 22:03 UTC
Read the original article Hit count: 358

Filed under:
|
|
|

I try to write a simple Ajax client to send and receive messages. It's successfully deployed but I have never received msg from the client. I am beating myself to think out what I am missing, but still can't make it work.

Here is my code:

  1. I creat a dynamic web application named: ActiveMQAjaxService and put activemq-web.jar and all neccessary dependencies in the WEB-INF/lib folder. In this way, AjaxServlet and MessageServlet will be deployed
  2. I start activemq server in command line: ./activemq => activemq successfully created and display:

Listening for connections at: tcp://lilyubuntu:61616
INFO | Connector openwire Started
INFO | ActiveMQ JMS Message Broker (localhost, ID:lilyubuntu-56855-1272317001405-0:0) started
INFO | Logging to org.slf4j.impl.JCLLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
INFO | jetty-6.1.9
INFO | ActiveMQ WebConsole initialized.
INFO | Initializing Spring FrameworkServlet 'dispatcher'
INFO | ActiveMQ Console at http://0.0.0.0:8161/admin
INFO | Initializing Spring root WebApplicationContext
INFO | Connector vm://localhost Started
INFO | Camel Console at http://0.0.0.0:8161/camel
INFO | ActiveMQ Web Demos at http://0.0.0.0:8161/demo
INFO | RESTful file access application at http://0.0.0.0:8161/fileserver
INFO | Started [email protected]:8161

3) index.xml, which is the html to test the client:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script type="text/javascript" src="amq/amq.js"></script> 
<script type="text/javascript">amq.uri='amq';</script> 
<title>Hello Ajax ActiveMQ</title> 
</head> 
<body> 
<p>Hello World!</p> 
<script type="text/javascript"> 
amq.sendMessage("topic://myDetector", "message"); 
var myHandler = 
{   
  rcvMessage: function(message) 
  { 
     alert("received "+message); 
  } 
}; 

function myPoll(first) 
{ 
        if (first) 
        { 
                amq.addListener('myDetector', 'topic://myDetector', myHandler.rcvMessage); 
        } 
} 

amq.addPollHandler(myPoll);

4) Web.xml:

ActiveMQ Web Demos Apache ActiveMQ Web Demos org.apache.activemq.brokerURL vm://localhost (I also tried tcp://localhost:61616) The URL of the Message Broker to connect to org.apache.activemq.embeddedBroker true Whether we should include an embedded broker or not
<!-- the subscription REST servlet --> 
<servlet> 
    <servlet-name>AjaxServlet</servlet-name> 
    <servlet-class>org.apache.activemq.web.AjaxServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet> 
    <servlet-name>MessageServlet</servlet-name> 
    <servlet-class>org.apache.activemq.web.MessageServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    <!-- 
    Uncomment this parameter if you plan to use multiple consumers over REST 
    <init-param> 
            <param-name>destinationOptions</param-name> 
            <param-value>consumer.prefetchSize=1</param-value> 
    </init-param> 
    --> 

</servlet> 

<!-- the queue browse servlet --> 
<filter> 
  <filter-name>session</filter-name> 
  <filter-class>org.apache.activemq.web.SessionFilter</filter-class> 
</filter> 

<filter-mapping> 
  <filter-name>session</filter-name> 
  <url-pattern>/*</url-pattern> 
</filter-mapping> 

After all of these, I deploy the web-app, and it's successfully deployed, but when I try it out in http://localhost:8080/ActiveMQAjaxService/index.html , nothing happens.

I can run the demo portfolioPublisher demo successfully at http://localhost:8161/demo/portfolio/portfolio.html, and see the numbers updated all the time. But for my simple web-app, nothing really works.

Any suggestion/hint is welcomed. Thanks so much

Lily

© Stack Overflow or respective owner

Related posts about activemq

Related posts about AJAX