BlazDS統合Flex Hello Worldの例

16901 ワード

開発環境:
System:Windows
WebBrowser:IE 6+、Firefox 3+
JavaEE Server:tomcat 5.0.28、tomcat 6
IDE:eclipse、MyEclipse 8
Flex IDE:Flash Builder 4
Blazed DS:4.5
開発依頼ライブラリ:
JavaEE 5、blazed DS 4.5
Email:hoo [email protected]
ブログ:http://blog.csdn.net/IBM_ヤフー
http://hoojo.cnblogs.com/
 
一、準備工作
1、まず関連のjarカバンを提供します.
Javaサーバー側はBlazecDS関連の構成とjarパッケージを提供する必要があります.
ダウンロード住所:http://opensource.adobe.com/wiki/display/blazeds/download+blazeds+trunk
ダウンロード後、このようなディレクトリが見られます.
BlazeDS 整合 Flex HelloWorld 示例_第1张图片
Docsは文書です
Resourceはソースです
SampleDBはサンプル用のデータベースで、startdb.batを実行してデータベースを起動することができます.
Tomcatは内蔵のtomcatです.tomcatがなければ使えます.tomcatのwebappsディレクトリにsamplesの例があります.
blazeds.warはblazecDSのコアファイル、ライブラリです.このwarをtomcatのwebappsディレクトリの下に置くと、自動的にストレスが解消されます.もちろん自分で手動でストレスを解消することもできます.
Blazeds-spring.warはspringと統合した構成です.
Ds-consolie.warはblazDSのコンソールプログラムです.
Samples.warは公式提供の例です.
Samples-spring.warはspringとblazDSの統合例です.
二、サーバ端末プログラムの配置
1、Java Web Projectプロジェクトを新規作成し、WEB-INF/libディレクトリに下記のjarパッケージを追加します.
BlazeDS 整合 Flex HelloWorld 示例_第2张图片
これらのjarカバンはblazeds.warカバンの中のlibカタログから見つけられます.
2、そして、blazeds.warカバンの中のWEB-INFディレクトリの下のflexディレクトリを現在のプロジェクトのWEB-INFの下にコピーする必要があります.
3、blazeds.warパッケージのWEB-INFディレクトリのweb.xmlの構成を、現在のプロジェクトのweb.xmlファイルに追加します.
4、最後の基本的なスタイルは以下の通りです.
BlazeDS 整合 Flex HelloWorld 示例_第3张图片
5、最後に現在のプロジェクトを発表します.もし間違いがないなら、サーバー側の配置が成功したことを示します.
6、ハロルドのjavaプログラムを作成します.コードは以下の通りです
package com.hoo.flex;
 
/**
 * <b>function:</b> HelloWorld Example
 * @author hoojo
 * @createDate 2011-8-31   06:11:27
 * @file HelloWorld.java
 * @package com.hoo.flex
 * @project BlazeDSServer
 * @blog http://blog.csdn.net/IBM_hoojo
 * @email [email protected]
 * @version 1.0
 */
public class HelloWorld {
    
    public HelloWorld() {
    }
    
    public String sayHello(String name) {
        return "[" + name + "] say hello!";
    }
}
一つのsayHello方法について、一つのパラメータを受信します.
三、Flexクライアントプログラム
1、Flexプロジェクトを作成し、サーバー技術を選択する時、J 2 EEを選択する必要があります.J 2 EE技術を使用してBlazDSを選択します.次のステップをクリックしてください.
BlazeDS 整合 Flex HelloWorld 示例_第4张图片
2、ルートフォルダを配置して、つまりJavaEEサーバ端末でプログラムを発行するのはtomcatの中の位置です.私はここでtomcatのwebappsのBlaze DSServerの中で、Blaze DSServerは私のサーバーエンドプログラムです.ルートURLはサーバ端末プログラムにアクセスするurlです.コンテキストディレクトリはプロジェクト名に対応します.最後にフォルダディレクトリを出力します.これはFlexのファイルが最後にtomcatに保存されたディレクトリです.
clip_image010
3、最後にサーバー端のservices-config.xmlのパスをコンパイルパラメータに設定する必要があります.これはとても重要です.設定しない場合は、RemoteObjectでBlazectを呼び出した後、endpointを設定する必要があります.設定は以下の通りです
clip_image012
-servicesはパラメータキーで、後の文字列は値です.私はBlaze DSServerを設定してtomcatディレクトリにリリースするservices-config.xmlのパスです.
4、Flexフロントエンドコードをコンパイルします.コードは以下の通りです.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="BlazeDSHelloWorld.mxml" layout="absolute" minWidth="955" minHeight="600">
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.rpc.AsyncToken;
            import mx.rpc.events.ResultEvent;
            
            private function faultHandler(event: Event): void {
                Alert.show(event.toString(), event.type);
            }
            
            private function resultHandler(event: ResultEvent): void {
                //event.result         
                result.text = "Message:" + event.result.toString();
            }
            
            private function sendHandler(): void {
                helloRemoteObject.sayHello(userName.text);
            }        
        ]]>
    </mx:Script>
    
    <!--           -service     -context-root   ,       endpoint   -->
    <mx:RemoteObject 
        id="helloRemoteObject" 
        destination="helloWorld" 
        fault="faultHandler(event)" 
        result="resultHandler(event)"
        showBusyCursor="true"/>
    <mx:Panel x="10" y="10" width="272" height="148" layout="absolute" title="BlazeDS Remote HelloWorld Sample">
        <mx:Label x="10" y="22" text="     "/>
        <mx:TextInput x="70" y="19" id="userName"/>
        <mx:Button x="184" y="45" label="  " click="sendHandler()"/>
        <mx:Text x="10" y="79" id="result"/>
    </mx:Panel>    
</mx:Application>
まず、Javaサーバ端のHello Worldプログラムをflexのremoting-config.xmlに配置する必要があります.構成は以下の通りです.
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" 
    class="flex.messaging.services.RemotingService">
 
    <adapters>
        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
    </adapters>
    
    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>
    
    <destination id="helloWorld">    
        <properties>    
            <source>com.hoo.flex.HelloWorld</source>    
        </properties>    
    </destination> 
</service>
上のmxmlコードのRemoteObjectのdestinationに対応するのがremoting-config.xmlプロファイルのdestinationのidです.これは一対一で対応しています.そして、sedHandler方法では、hello RemoteObjectはRemoteObjectのidに対応しています.sayHello方法は、remoting-config.xmlに配置されているdestinationのsourceのJavaサーバエンドコードの共有方法に対応しています.設定を追加したら、tomcatを再起動する必要があります.
上記のflexプログラムを実行した後、パラメータを入力して送信すると、サーバーから戻ってきたメッセージが見えます.BlazeDS統合Flexが成功しました.