wiki:jazz/ActiveMQ/08-10-27

Version 11 (modified by jazz, 16 years ago) (diff)

--

2008-10-27

關於 Portfolio 範例

  • 下載 ActiveMQ 5.1.0 Release, 解壓縮,並執行 ActiveMQ Message Broker
    ~$ wget http://ftp.twaren.net/Unix/Web/apache/activemq/apache-activemq/5.1.0/apache-activemq-5.1.0-bin.tar.gz
    ~$ tar zxvf apache-activemq-5.1.0-bin.tar.gz
    ~$ cd apache-activemq-5.1.0/
    ~/apache-activemq-5.1.0$ ./bin/activemq
    
  • 連線到 http://127.0.0.1:8161/demo/

  • 用不同的視窗執行 Portfolio 範例,下圖右上方是"Market data publisher"網頁(Message Provider),左上方是"Portfolio"網頁(Message Receiver),下方是 ActiveMQ Message Broker。我們可以看到 Message Sender/Provider? 網頁每兩秒送出一筆新的訊息。而 Message Receiver/Subscriber? 則會用顏色標示出目前更新的情形。

  • 這個範例證實了 ActiveMQ 可以用 JavaScript 實做出加入 Message Broker 後即時更新的可能性,因此值得追蹤其背後的原理。

開始追蹤原始碼

  • "Market data publisher"網頁(Message Provider)的網址比較特殊,是 "portfolioPublish?count=1&refresh=2&stocks=IBMW&stocks=BEAS&stocks=MSFT&stocks=SUNW",直接觀看 HTML 原始碼並沒有 JavaScript 的蹤影,因此它應該是 JSP 網頁。而在 apache-activemq-5.1.0\webapps\demo\WEB-INF\web.xml 中,我們就可以找到答案了~
        <!-- servlets for the portfolio demo -->
        <servlet>
            <servlet-name>PortfolioPublishServlet</servlet-name>
            <servlet-class>org.apache.activemq.web.PortfolioPublishServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
    ... 略 ...
    
        <servlet-mapping>
            <servlet-name>PortfolioPublishServlet</servlet-name>
            <url-pattern>/portfolioPublish</url-pattern>
        </servlet-mapping>
    

Attachments (9)

Download all attachments as: .zip