flex java 開發環境搭建_Flex+JAVA+BlazeDS開發環境配置(Java工程和Flex工程獨立)

Flex+JAVA+BlazeDS開發環境配置(Java工程和Flex工程獨立)

2019年12月07日

閱讀數:7

這篇文章主要向大家介紹Flex+JAVA+BlazeDS開發環境配置(Java工程和Flex工程獨立),主要內容包括基礎應用、實用技巧、原理機制等方面,希望對大家有所幫助。

[url]http://blog.csdn.net/assin/article/details/4277403[/url]

不管是哪一種服務器端技術都可以很輕松地應用 XML,由于 XML 徹底是一個基于文本的協議。像 XML 這樣基于文本的協議的缺點是額外的數據抽象層的編寫與維護工做相對很沉重。此外,若是數據須要序列化和反序列化,那么這個數據抽象層在客戶端和服務器端都會占用不少資源。

Flash Player 能夠支持另一種傳輸協議,這個協議可以緩解由基于文本的協議致使的傳輸瓶頸問題,可以幫助開發者以更簡單的方式與服務器交互。這就是 AMF(Action Message Format)。它是一個二進制格式的協議,可以替代用于傳輸XML的基于文本的協議而在 HTTP 協議之上交換數據。采用 AMF 的應用中,數據抽象層徹底能夠省去,客戶與服務器間的通信效率比傳統的應用基于文本的協議傳輸要高得多。

BlazeDS 中包含了 AMF 的 Java 實現,能夠用來與服務器端的 Java 對象遠程交互,也能夠用來在客戶端之間傳遞消息。開發人員能夠借助 BlazeDS 的遠程技術簡單地調用 POJO、Spring 服務或EJB方法。開發人員能夠經過其消息系統從客戶端向服務器端發送消息,固然也可從服務器端向客戶端發送消息。

BlazeDS 也能夠與其余一些消息系統結合使用,好比JMS、ActiveMQ。因為其遠程技術與消息系統采用的方式是在 HTTP 協議上傳輸 AMF 數據,BlazeDS 所以在性能上擁有很大優點,同時也避免了額外的數據抽象層的處理工做。BlazeDS 在不少基于 Java 的應用服務器環境下都能正常工做,這些服務器包括 Tomcat、WebSphere、WebLogic、JBoss 以及 ColdFusion。此外,不管是 web(在 Flash Player 中運行)仍是桌面(在Adobe AIR下運行)的 Flex 應用程序中,BlazeDS 的使用都很簡單。

簡單來講 BlazeDS是一個基于服務器的 Java 遠程調用和 Web 消息傳遞技術,它可以讓后臺的 Java 應用程序和運行在瀏覽器上的 Flex 應用程序相互通訊。BlazeDS 是 Adobe 的一個開源項目,里面提供了 Java 封裝 AMF3 格式的方法。下面經過一個 HelloWorld 的例子對它作一個初步的了解。

1、所需的軟件:

MyEclipse + Tomcat 6.0 + Flex Builder 3 + BlazeDS,軟件的下載請直接問 goole。

2、配置服務器端(MyEclipse + Tomcat 6.0 + BlazeDS)

1. 先將 BlazeDS 壓縮包解開,而后找到 blazeds.war 再用 winrar 解開。

2. 打開 MyEclipse,配置 Tomcat 服務器:Window -> Preferences -> MyEclipse -> Application Servers -> Tomcat -> Tomcat 6.x 配置 Tomcat home directory 為 Tomcat 的安裝路徑,同時選擇 Tomcat server -> Enable。

3. 接下來,在 MyEclipse 中建立一個 Web Project,工程名 blazeds_project。

5. 在左側視圖中選中 WebRoot 右鍵 -> Import -> FileSystem -> 選擇 BlazeDS 安裝目錄下的 blazeds 文件夾。選中后打勾,Finish。出現 Override 提示框,選擇 Yes To All。

6. 下面在本工程的 src 目錄下編寫一個 Java 類(包名 blog.sina.yyy98,類名 HelloWorld):

package blog.sina.yyy98;

public class HelloWorld {

public String getHello() {

return "Hello World";

}

}

7. java 類寫好了,下面要在 remoting-config.xml 中聲明這個類(黑體字部分):

class="flex.messaging.services.RemotingService">

blog.sina.yyy98.HelloWorld

8. 好了,大功告成,如今將這個項目部屬到 Tomcat 中,而后啟動 Tomcat。

3、建立 Flex 客戶端

1. 新建一個 Flex 項目,名稱為 flex_client,選擇 Application server type:J2EE。

2. 這是關鍵的一步,Root folder 為剛剛在 Tomcat 中部署的 blazeds_project 項目路徑。為了保持一致性,Root URL 和 Context root 中的相對路徑的名稱都與該 web 項目名稱保持相同。這三項內容填寫好后,須要點擊 “Validate Configuration” 按鈕,進行配置驗證(此時最好讓 Tomcat 處于開啟狀態)。驗證完成后點擊 Finish。

3. 最后編寫客戶端(flex_client.mxml):

import mx.rpc.events.FaultEvent;

import mx.controls.Alert;

import mx.rpc.events.ResultEvent;

private function resultHandler(event:ResultEvent):void {

Alert.show(event.result.toString(), "成功");

}

private function faultHandler(event:FaultEvent):void {

Alert.show(event.fault.toString(), "失敗");

}

]]>

destination="helloWorld"

result="resultHandler(event)"

fault="faultHandler(event)"/>

AS 表示法:

var remoteObject:RemoteObject = new RemoteObject();

remoteObject.destination = "helloWorld";

remoteObject.addEventListener(ResultEvent.RESULT, resultHandler);

remoteObject.addEventListener(FaultEvent.FAULT, faultHandler);

4. Ok,完成。運行 felx_client,收到服務器端返回的 “Hello World” 字符串。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373290.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1251 括號(遞歸小練)

1251 括號 時間限制: 1 s空間限制: 128000 KB題目等級 : 黃金 Gold題目描述 Description計算乘法時,我們可以添加括號,來改變相乘的順序,比如計算              X1, X2, X3, X4, …, XN的積,可以 (X1(X2(X3(X4(...(XN-1…

zabbix_agentd.conf配置文件詳解

Aliaskey的別名,例如 Aliasttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]),,,,\1], 或者ttlsa的用戶ID。你可以使用key:vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]),,,,\1],也可以使用ttlsa.userid。備注: 別名不…

在運行時修補Java

本文將重點介紹如何解決與第三方庫相關的問題 不能被規避 難以排除/繞過/替換 只需不提供錯誤修正 在這種情況下,解決問題仍然是一項艱巨的任務。 作為這種情況的誘因,請考慮對“哈希索引”數據結構的攻擊,例如java.util.Hashtable和java…

php return直接輸出,PHP中return用法詳細解讀

原標題:PHP中return用法詳細解讀在大部分編程語言中,return關鍵字可以將函數的執行結果返回,PHP中return的用法也大同小異,對初學者來說,掌握PHP中return的用法也是學習PHP的一個開始。首先,它的意思就是返…

并行執行,沒用到過,寫到這里免得搞忘

/// <summary>/// /// </summary>class Program{static void Main(string[] args){simultaneous();Console.ReadKey();}static void simultaneous(){//盡可能并行執行提供的每個操作Parallel.Invoke(() > ComplexMethod("1"),() > ComplexMethod(&…

UIViewController生命周期

UIViewController生命周期 UIViewController生命周期 posted on 2016-04-07 20:15 相而勿絕 閱讀(...) 評論(...) 編輯 收藏 轉載于:https://www.cnblogs.com/fmdxiangdui/p/5365249.html

Spring的REST分頁

這是有關使用Spring 3.1和Spring Security 3.1和基于Java的配置來建立安全的RESTful Web Service的系列文章的第七篇。 本文將重點介紹RESTful Web服務中的分頁實現 。 REST with Spring系列&#xff1a; 第1部分– 使用Spring 3.1和基于Java的配置引導Web應用程序 第2部分–…

眾籌源碼 php,助創cms眾籌源碼系統v1.0

什么是助創cms眾籌系統?使用“預約團購”的眾籌方式給自己的創意爭取大家的關注和支持&#xff0c;是近年來非常火熱的一種融資模式&#xff0c;助創cms眾籌系統可以10分鐘幫你打造一個和京東眾籌一樣的平臺&#xff0c;包含產品眾籌和公益眾籌兩個部分&#xff0c;可以直接拿…

Linq to SQL 的增刪改查操作

Linq&#xff0c;全稱Language Integrated Query&#xff0c;作為C#3.0新語法&#xff0c;是C#語言的一個擴展&#xff0c;可以將數據查詢直接集成到編程語言本身中。 Linq表達式和SQL語句差不多&#xff0c;說白了就是顛倒sql語法&#xff0c; from where select ...&#xff…

擴展您的JPA POJO

可擴展性是許多體系結構的重要特征。 它衡量是否容易&#xff08;或困難&#xff09; 它是在不影響現有核心系統功能的情況下添加或更改功能。 讓我們舉一個簡單的例子。 假設您的公司擁有一個核心產品來跟蹤體育俱樂部中的所有用戶。 在您的產品體系結構中&#xff0c;您有一個…

web框架--flask

flask介紹Flask是一個基于Python開發并且依賴jinja2模板和Werkzeug WSGI服務的一個微型框架&#xff0c;對于Werkzeug本質是Socket服務端&#xff0c;其用于接收http請求并對請求進行預處理&#xff0c;然后觸發Flask框架&#xff0c;開發人員基于Flask框架提供的功能對請求進行…

php spider shell,ScrapyShell使用

Scrapy ShellScrapy終端是一個交互終端&#xff0c;我們可以在未啟動spider的情況下嘗試及調試代碼&#xff0c;也可以用來測試XPath或CSS表達式&#xff0c;查看他們的工作方式&#xff0c;方便我們爬取的網頁中提取的數據。如果安裝了 IPython &#xff0c;Scrapy終端將使用 …

69 個經典 Spring 面試題和答案

Spring 概述 什么是spring?Spring 是個java企業級應用的開源開發框架。Spring主要用來開發Java應用&#xff0c;但是有些擴展是針對構建J2EE平臺的web應用。Spring 框架目標是簡化Java企業級應用開發&#xff0c;并通過POJO為基礎的編程模型促進良好的編程習慣。使用Spring框架…

高性能MySql

1、索引是對DB優化最有效的方式 varchar(10)定義的是字符的個數&#xff0c;如果是utf-8的話&#xff0c;最大是3X10個字節 二、索引類型 1、MySql的索引是在存儲引擎層實現的&#xff0c;各個存儲引擎的的索引方式也是不同的 2、B-Tree索引 MyISAM索引通過數據的物理位置引用被…

Java Swing井字游戲

大家好&#xff01; 哇&#xff0c;自從我在這里發布了東西以來已經有一段時間了&#xff01; 我必須說我真的很想寫東西&#xff0c;而且我保證我不會再陷入“作家的障礙”。 希望 ..最近兩個月發生了很多事情&#xff0c;我有很多話要說。 但是在這篇文章中&#xff0c;我只是…

Java小青蛙跳臺街,算法-青蛙跳臺階詳解

/*[跳臺階][題目]一只青蛙一次可以跳上1級臺階&#xff0c;也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。[解析]與斐波那契數列的求解過程類似。典型的動態規劃問題。對于第 n 級臺階&#xff0c;我們可以從第 n-1 級臺階一步到達&#xff0c;也可以從第 n-2 級…

apache服務器配置Net的實踐

前置&#xff1a; 在xp系統中&#xff0c;打補丁之類或啥子操作引起或多或少的問題&#xff0c;最終導致iis不能使用&#xff1b; 不想裝系統...忍著... 最近突發事件導致&#xff0c;需要摸一下apache服務器處理&#xff0c;好吧&#xff0c;那就搜索下吧..... 目標&#xff1…

TestNG或JUnit

多年以來&#xff0c;無論何時使用Java代碼進行單元測試&#xff0c;我始終會回到TestNG。 每當我拿起TestNG時&#xff0c;人們都問我為什么要繼續使用TestNG&#xff0c;尤其是默認開發環境&#xff08;例如Eclipse或Maven&#xff09;提供的JUnit時。 繼續進行同樣的戰斗&am…

event php,PHP event 事件機制

/** PHP 事件機制*/class baseClass{private $_e;public function __set($name,$value){if( strncasecmp($name,"on",2) 0 ){if(!isset($this->_e[$name]))$this->_e[$name] array();return array_push($this->_e[$name] , $value);}}public function __g…

Android JNI編程(五)——C語言的靜態內存分配、動態內存分配、動態創建數組...

版權聲明&#xff1a;本文出自阿鐘的博客&#xff0c;轉載請注明出處:http://blog.csdn.net/a_zhon/。 目錄(?)[] 一&#xff1a;什么是靜態內存什么又是動態內存呢&#xff1f; 靜態內存&#xff1a;是指在程序開始運行時由編譯器分配的內存&#xff0c;它的分配是在程序開始…