Tomcat下遠程調式分析學習Flex服務器Blazeds (二)

 

      在網頁遊戲中,經常使用AmfPhp,Zend_AMF或Blazeds,LiveCycle之類作爲webserver服務器。如果服務器選擇php,則amfphp當然是首選。如果服務器是j2ee,通常選擇Blazeds或LiveCycle。由於Blazeds開源性,我更傾向於Blazeds。它是居於java servlet基礎上開發的flex-java通訊框架,支持http服務,amf服務以及發佈訂閱式服務。工欲善其事,必先利其器。想深入瞭解blazeds框架,我們得搭建一個運行環境來一步一步調式。不過大家先要去adob網站下載blazeds-bin-4.0.1.17657.zip和blazeds-src-4.0.1.17657.zip兩個安裝包

    1.解壓blazeds-bin-4.0.1.17657.zip到D:\blazeds。,它裏面自帶一個tomcat服務器。

       將blazeds-src-4.0.1.17657解壓到d:\fff目錄

    2.在D:\blazeds\tomcat\webapps目錄下web應用目錄myblazeds,做過j2ee的童鞋應該很熟悉.當然你也可以使用配置方式指定應用目錄。並拷貝原有blazeds目錄下原有所有文件夾以及文件到myblazeds

    


 
 

   

  

 

 

    3.啓動D:\blazeds\tomcat的tomcat服務器測試服務器是否Ok:

 



 

 

 

     4.打開flashbuilder4建立一個flex工程,應用服務器類型選擇j2ee以及Blazeds

 

 

   5.設置flex使用j2ee服務器路徑以及上下文爲當前tomcat對應路徑:

    根目錄:D:\blazeds\tomcat\webapps\myblazeds

    根URL(就是tomcat下 webapp訪問路徑):http://127.0.0.1:8400/myblazeds

    上下文根目錄:/myblazeds

   注意flex輸出路徑一定爲D:\blazeds\tomcat\webapps\myblazeds

    如果不出現錯誤這一步就OK了

 

  6.在blazeds.mxml文件中編寫如下代碼,這個代碼我是從blazeds使用指南中copy過來的:

   這個很簡單,就是請求java服務器端的遠程對象echo函數:

 

  <?xml version="1.0"?>
<!-- intro\intro_remoting.mxml -->
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"
    width="100%" height="100%">
 <mx:Script>
  <![CDATA[
   import mx.rpc.events.FaultEvent;
   import mx.rpc.events.ResultEvent;
   // Send the message in response to a Button click.
   private function echo():void {
    var text:String = ti.text;
    remoteObject.echo(text);
   }
   // Handle the recevied message.
   private function resultHandler(event:ResultEvent):void {
    ta.text += "Server responded: "+ event.result + "\n";
   }
   // Handle a message fault.
   private function faultHandler(event:FaultEvent):void {
    ta.text += "Received fault: " + event.fault + "\n";
   }
  ]]>
 </mx:Script>
 <mx:RemoteObject id="remoteObject"
      destination="echoServiceDestination"
      result="resultHandler(event);"
      fault="faultHandler(event);"/>
 <mx:Label text="Enter a text for the server to echo"/>
 <mx:TextInput id="ti" text="Hello World!"/>
 <mx:Button label="Send" click="echo();"/>
 <mx:TextArea id="ta" width="100%" height="100%"/>
</mx:Application>


  7.使用myeclipse建立一個web工程,工程文件輸出路徑爲我們在上面建立myblazeds下的web-inf/class:  myblazeds/WEB-INF/classes

    

 

   
   8.copy d:\fff目錄下的lib中所有文件夾以及文件到D:\blazeds\tomcat\webapps\myblazeds\WEB-INF\lib

     copy d:\fff目錄下的modules目錄下的所有lib目錄下的所有jar包到              D:\blazeds\tomcat\webapps\myblazeds\WEB-INF\lib

   copycopy d:\fff目錄下的modules目錄下的src目錄下所有目錄到我們工程下的src目錄下。現在工程就變成所轄

所示了。

 

 

  9.在java工程建立java類EchoService:

    package remoting;

public class EchoService {
  public String echo(String text) {
     return "Server says: I received '" + text + "' from you";
  }
}

 

 

 在java工程下的WEB-INF/flex/remoting-config.xml文件添加如下:

 
 <destination id="echoServiceDestination" channels="my-amf">
  <properties>
   <source>remoting.EchoService</source>
  </properties>
 </destination>

 



 

  10.在D:\blazeds\tomcat\bin目錄下建立一個用於遠程調式tomcat批處理文件mydebug.bat:

    cd %CATALINE_HOME%/bin

   set JPDA_ADDRESS=8090

   set JPDA_TRANSPORT=dt_socket


   set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8090

startup

 

  11.啓動tomcat並啓動fle工程:

 

 

 

 12.在myeclipse中建立遠程連接tomcat:

  host:localhost

  port:8090

 

 

 13。在MessageBrokerServlet.java類中的service函數打斷點,點擊Flex工程頁面中send按鈕開始調式:



 

 

 



 

好了,到此我們的調式環境已經準備好了。下一編我就開始實際分析blazeds架構原理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章