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.mzph.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;它的分配是在程序开始…