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: 441
        
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:
- 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
- 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