`
lym6520
  • 浏览: 695919 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

flex使用BlazeDS远程调用java

    博客分类:
  • Flex
阅读更多
近段时间在学习flex和java如何调用的时候看到了BlazeDS,在网上找了一些资料,整理了一下,并自己做了个简单的HelloWord例子,本篇文章只是对flex使用BlazeDS远程调用的整理学习之用。

什么是BlazeDS呢?BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,它能够使得后台的Java应用程序和运行在浏览器上的Flex应用程序相互通信。
1.下载BlazeDS:http://opensource.adobe.com/wiki/display/blazeds/Release+Builds  ——》》Download the BlazeDS binary distribution
2.下载完后将里面的 blazeds.war 文件解压到tomcat的webapps
目录下,然后启动tomcat,在webapps下生成了blazeds文件夹,关闭tomcat。

3.打开blazeds文件夹,在WEB-INF文件夹下有个flex文件夹,其中包含是个xml文件:messaging-config.xml、proxy-config.xml、remoting-config.xml、services-config.xml,这些文件对应相应的服务:远程调用(在remoting-config.xml中配置)、访问代理(proxy-config.xml)、消息服务(messaging-config.xml),同时框架允许你添加自定义的服务(在services-config.xml中配置)。
1.远程调用。其实框架在这里起到的作用和struts等服务端的框架差不多,都是任务分配的功能,只不过blazeDS支持客户端直接对象调用,一方面提高了数据传输速度,另一方面省了在客户端写url,但是它需要编译客户端的时候关联服务端配置文件,烦!综合考虑优缺点,这个功能还是值得使用的。
2.访问代理。能够提供权限控制,和跨域访问的能力。这个任何web服务器都能做到(加httpClient转发么),没什么特殊之处。
3.消息服务。这个正式blazeDS 牛的地方,它能向普通的浏览器客户端页面推送数据,而不需要建立socket链接。这个应用在很多地方都有用到,比如股票信息即时刷新,在线聊天等等需要实时数据推送的场景。

接下来做个远程调用的hello world例子:
简单描述下开发环境:
IDE:Flex Builder 3
服务器:tomcat6.0

1.写个java类:helloWord
package com.flex.test;
  
public class HelloWorld { 
  
 public HelloWorld() { 
 } 
  
 public String getHelloWorld() { 
  return "Hello World!"; 
 } 
} 

编译HelloWord,并把编译的class文件放到刚才下载的blazeds.war 下的\WEB-INF\classes文件夹下,注意:我们把HelloWorld打包到了com.flex.test;所以同样需要在classes文件夹下创建com\flex\test这些文件夹,然后把HelloWorld.class放到\WEB-INF\classes\com\flex\test下。
2.接下来配置remoting-config.xml文件:
在</service>标签前加入:
    <destination id="helloWorld"> 
        <properties> 
            <source>com.flex.test.HelloWorld</source> 
        </properties> 
    </destination>

其中id属性我们在flex调用的时候会用到,source结点描述了完整的包路径和类名。

3.创建Flex项目:HelloWord

4.编辑HelloWord.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
    <![CDATA[
    	import mx.rpc.events.FaultEvent;
       import mx.collections.ArrayCollection;
       import mx.rpc.remoting.mxml.RemoteObject;
       import mx.controls.Alert;
       import mx.rpc.events.ResultEvent;
       
       public function submit():void{
           var remote:RemoteObject = new RemoteObject();
           //调用在J2EE端remoting-config.xml中配置的暴露出的类的名称 id
           remote.destination = "helloWorld";
           //调用J2EE端类中的方法
           remote.getHelloWorld();
           //监听调用成功事件
           remote.addEventListener(ResultEvent.RESULT,result);                
           //监听失败事件
           remote.addEventListener(FaultEvent.FAULT,fault);  
       }
       
       private function result(evt:ResultEvent):void{
           Alert.show(evt.result.toString());
       }
       
        private function fault(evt:FaultEvent):void{
           Alert.show("调用失败!");
       }       
    ]]>
	</mx:Script>

    <mx:Button click="submit()" label="hello" horizontalCenter="0" verticalCenter="0"/>

</mx:Application>



5.重起tomcat,然后运行HelloWorld.mxml。

附件包含:blazeds.war和Flex项目:HelloWorld,运行例子只需要把blazeds.war放到tomcat的webapps目录下,然后运行HelloWorld.mxml即可。
3
2
分享到:
评论
9 楼 小坦坦 2015-01-12  
remote.点不出自己的方法啊
8 楼 lym6520 2010-01-26  
azhqiang 写道
为什么我照你的配置 总是弹出调用失败?我现在正在看java与flex通讯部分 总是看不明白

tomcat有没启动?
7 楼 lym6520 2010-01-26  
azhqiang 写道
请问下 你是不是把flex和java项目是分开在开发的?这个例子?

引用
编译HelloWord,并把编译的class文件放到刚才下载的blazeds.war 下的\WEB-INF\classes文件夹下,注意:我们把HelloWorld打包到了com.flex.test;所以同样需要在classes文件夹下创建com\flex\test这些文件夹,然后把HelloWorld.class放到\WEB-INF\classes\com\flex \test下。
6 楼 azhqiang 2010-01-26  
为什么我照你的配置 总是弹出调用失败?我现在正在看java与flex通讯部分 总是看不明白
5 楼 azhqiang 2010-01-26  
请问下 你是不是把flex和java项目是分开在开发的?这个例子?
4 楼 lym6520 2009-11-30  
wangdgsc 写道
哥们儿,能不能搞点儿复杂的例子,比如struts2与flex什么的

flex我也只是简单的了解一下,你想要学点如何集成到现有的j2ee应用,可以看下这篇文章:http://www.ibm.com/developerworks/cn/java/j-lo-jeeflex/?ca=drs-tp4608
3 楼 wangdgsc 2009-11-29  
哥们儿,能不能搞点儿复杂的例子,比如struts2与flex什么的
2 楼 lym6520 2009-11-27  
选中文件 单击鼠标右键,选择 run application
1 楼 ridn_jache 2009-11-27  
然后运行HelloWorld.mxml即可。
怎么运行啊,HelloWorld.mxml

相关推荐

    flex使用BlazeDS远程调用java例子.

    flex使用BlazeDS远程调用java例子.

    Flex Spring JAVA BLAZEDS整合

    Flex技术本身和Java就有很强的关联性,它提供了一个基于Eclipse的IDE和BlazeDS.BlazeDS是个基于服务端的Java远程调用和Web消息的一个开源的技术。有许多应用都是以Java为后端处理的。Flex用于前端。由于Java和Flex...

    Flex与Java交互调用mysql

    想用Flex前台页面调用mysql而苦于Flex没有该接口,利用BlazeDS技术,使得Java调用mysql,然后Flex就可以远程调用Java,从而实现前台Flex页面对mysql数据库的操作。

    flex与java远程传值demo

    一个java web项目模块,一个flex项目模块,web项目发布到tomcat,flex通过BlazeDS远程服务来调用java服务提供的方法,实现了flex前端与java后台服务的数据交互。

    新版Flex4下Java与BlazeDs整合的项目(含远程调用和消息服务示例)

    RT 已经含有了blazeDs.war FlashBuilder4 Tomcat6下测试通过~ 先启动后台服务 http://localhost:8080/Flex4JavaDemo/TickCacheServlet?cmd=start http://localhost:8080/Flex4JavaDemo/message.html

    flex remoteobject调用java服务

    eclipse3.7 + flash builder 4.5插件 + tomcat6.X调试通过,一个flex remoteobject简单例子(BlazeDS)。实际导入后指定flex server--java settings--blazeds.war的路径

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    BlazeDS 为 Flex 提供了基于 AMF 二进制协议的远程调用支持,其作用相当于 Java 的 RMI。有了 BlazeDS,通过简单的配置,一个 Java 接口就可以作为服务暴露给 Flex,供其远程调用。 尽管现有的 EmployeeMgmt 应用...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    BlazeDS 为 Flex 提供了基于 AMF 二进制协议的远程调用支持,其作用相当于 Java 的 RMI。有了 BlazeDS,通过简单的配置,一个 Java 接口就可以作为服务暴露给 Flex,供其远程调用。 尽管现有的 EmployeeMgmt 应用...

    blazeds4.7官方下载

    BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,使得后台的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信。

    BlazeDS与java整合的最佳方案

    BlazeDS是一个基于服务器的 Jav a 远程调用和 Web 消息传递技术,因为其免费而受到大家喜欢。对于初学者来说不知道如何使用,这里就送上教程,希望有所帮助。

    flex与java的整合教程

    使用Flex整合Java,什么...另外附加了BlazeDS的学习知识,BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,它能够使得后台的Java应用程序和运行在浏览器上的Flex应用程序相互通信。

    blazeds.chm

    BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,使得后台的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信。

    blazeds.war

    BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,使得后台的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信。

    blazeds-turnkey-4.0.0.14931

    BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,使得后台的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信。

    Flex企业应用开发实战源代码

    7.2 如何使用户等待远程调用的结束 243 7.3 加入简单的身份认证功能 251 7.4 使Flex应用脱离开发环境部署到运行环境 260 7.4.1 存在的问题 260 7.4.2 封装BlazeDS及封装后的系统调用方式 260 7.4.3 封装...

    blazeDS.war

    BlazeDS中包含了AMF 的 Java 实现,可以用来与服务器端的Java对象远程交互,也可以用来在客户端之间传递消息。开发人员可以借助 BlazeDS 的远程技术简单地调用 POJO、Spring 服务或EJB方法。开发人员可以通过其消息...

    Spring攻略(第二版 中文高清版).part2

    10.6 使用BlazeDS和Spring消费面向消息的服务 421 10.6.1 问题 421 10.6.2 解决方案 422 10.6.3 工作原理 422 10.7 将依赖注入带给你的ActionScript客户 434 10.7.1 问题 434 10.7.2 解决方案 434 ...

    Spring攻略(第二版 中文高清版).part1

    10.6 使用BlazeDS和Spring消费面向消息的服务 421 10.6.1 问题 421 10.6.2 解决方案 422 10.6.3 工作原理 422 10.7 将依赖注入带给你的ActionScript客户 434 10.7.1 问题 434 10.7.2 解决方案 434 ...

Global site tag (gtag.js) - Google Analytics