Changes between Version 12 and Version 13 of jazz/ActiveMQ/08-10-27


Ignore:
Timestamp:
Oct 27, 2008, 11:13:32 PM (16 years ago)
Author:
jazz
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • jazz/ActiveMQ/08-10-27

    v12 v13  
    1919 * 這個範例證實了 ActiveMQ 可以用 !JavaScript 實做出加入 Message Broker 後即時更新的可能性,因此值得追蹤其背後的原理。
    2020
    21 == 開始追蹤原始碼 ==
     21== 開始追蹤原始碼 - Message Sender / Provider ==
    2222
    2323 * "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 中,我們就可以找到答案了~
     
    3737    </servlet-mapping>
    3838}}}
    39  * 因此,"Market data publisher"網頁(Message Provider)的原始碼必須看 activemq.jar 裡包的 PortfolioPublishServlet.class 原始碼。
     39 * 因此,"Market data publisher"網頁(Message Provider)的原始碼必須看 activemq.jar 裡包的 !PortfolioPublishServlet.class 對應的原始碼。
    4040 * 請下載 ActiveMQ 5.1.0 Source Release
    4141{{{
     
    4646}}}
    4747   * 路徑: apache-activemq-5.1.0/src/activemq-web/src/main/java/org/apache/activemq/web/PortfolioPublishServlet.java
     48
     49== 開始追蹤原始碼 - Message Subsciber / Receiver ==
     50
     51 * 觀察"Portfolio"網頁(Message Receiver)的原始碼
     52{{{
     53<script type="text/javascript" src="../amq/amq.js"></script>
     54<script type="text/javascript">amq.uri='../amq';</script>
     55<script type="text/javascript" src="portfolio.js"></script>
     56}}}
     57 * 下載所有相關的 !JavaScript 原始碼
     58{{{
     59~$ wget http://127.0.0.1:8161/demo/portfolio/portfolio.js
     60~$ wget http://127.0.0.1:8161/demo/amq/amq.js
     61}}}
     62 * 從 amq.js 又可以找出其他 !JavaScript 原始碼
     63{{{
     64#!java
     65var _AMQ_INCLUDE = {
     66  Version: 'AMQ JS',
     67  script: function(libraryName) {
     68    document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
     69  },
     70  load: function() {
     71    var scriptTags = document.getElementsByTagName("script");
     72    for(var i=0;i<scriptTags.length;i++) {
     73      if(scriptTags[i].src && scriptTags[i].src.match(/amq\.js$/)) {
     74        var path = scriptTags[i].src.replace(/amq\.js$/,'');
     75        this.script(path + 'prototype.js');
     76        this.script(path + 'behaviour.js');
     77        this.script(path + '_amq.js');
     78        // this.script(path + 'scriptaculous.js');
     79        break;
     80      }
     81    }
     82  }
     83}
     84
     85_AMQ_INCLUDE.load();
     86}}}
     87 * 下載其他 !JavaScript 原始碼
     88{{{
     89~$ wget http://127.0.0.1:8161/demo/amq/prototype.js
     90~$ wget http://127.0.0.1:8161/demo/amq/behaviour.js
     91~$ wget http://127.0.0.1:8161/demo/amq/_amq.js
     92}}}