`
lym6520
  • 浏览: 704191 次
  • 性别: 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前端开发、BlazeDS作为中间件以及Java后端服务的创建。这个例子展示了如何利用Flex的强交互性和BlazeDS的高效通信能力,构建一个跨平台的RIA...

    使用BlazeDS实现flex与java 整合

    1. **Remoting Service**:通过AMF协议提供远程方法调用,使得Flex客户端可以直接调用Java服务端的方法。 2. **LiveCycle Data Services**:提供了高级的数据管理功能,如数据推送、数据缓存和数据分页等。 3. **...

    Flex+BlazeDS+java通信详细笔记和源代码

    总结来说,Flex+BlazeDS+Java通信的核心在于BlazeDS作为桥梁,使得Flex的前端可以便捷地调用Java后端的服务,实现数据的双向传输,从而创建出具有实时交互特性的ria应用。而`PushTest6`的源代码则可以作为学习和理解...

    Flex与java交互 远程调用方式

    在Flex和Java之间进行远程调用,最常见的技术之一是使用AMF(Action Message Format)。AMF是一种二进制数据格式,能够高效地序列化和反序列化ActionScript对象,使得 Flex与Java之间的数据交换更为快速和高效。...

    Flex+blazeds+java企业门户网站完整源码

    2. Remoting:通过HTTP或HTTPS协议,实现远程方法调用,使得Flex客户端可以直接操作Java对象。 3. Messaging:支持发布/订阅模型的消息传递,允许异步通信和事件驱动的应用设计。 4. Channel Set和Proxy:自定义通信...

    Flex + BlazeDS+ Java 入门教程

    BlazeDS通过服务暴露这些Java方法,使得Flex客户端可以通过AMF调用它们。这一步骤对于理解客户端和服务器之间的数据交换至关重要。 数据绑定是Flex的一个强大特性,它允许你将UI组件直接连接到应用程序的数据模型。...

    Flex Spring JAVA BLAZEDS整合

    BlazeDS是Adobe提供的一个开源工具,它支持Java远程调用(RPC)和Web消息传递,允许Flex客户端与Java服务器之间进行通信。 在Flex和Spring的整合中,关键在于Spring容器管理的Bean如何被Flex客户端访问。Spring社区...

    Flex + blazeds + Java入门搭建与简单应用

    2. **远程服务调用**:通过AMF,Flex客户端可以透明地调用Java后端的业务逻辑,简化了前后端交互。 3. **数据交换效率**:AMF是一种二进制格式,相比JSON或XML,数据传输更高效,减少了网络延迟。 4. **组件重用**...

    Flex通过BlazeDS与JAVA通信

    BlazeDS 结合了远程调用(Remoting)和消息传递(Messaging)功能,使得基于浏览器的 Flex 应用可以轻松地与服务器上的 Java 服务进行数据交互。 在开始使用 BlazeDS 之前,需要确保你的开发环境已经准备好。这包括...

    flex+blazeDS配置指南

    这样,Flex客户端就可以通过AMF通道调用Java后端的方法。 8. **测试通信**:运行Flex项目,尝试调用Java后端的方法,查看结果是否正确返回。如果一切配置无误,Flex客户端应该能够顺利地与BlazeDS和Java后端进行...

    Flex+Blazeds与Java_Web_Project整合(图解)

    在flexDemo项目的src目录下,编写一个简单的Java类,例如“HelloWorld”,用于测试远程调用。这个类包含一个公共方法`getHelloWorld`,接收一个字符串参数并返回带有该参数的问候语。 部署flexDemo应用到Tomcat...

    Flex + BlazeDS + Java + JMS 通信实例(附源码)

    BlazeDS是Adobe提供的一个免费服务器端组件,它允许Flex客户端与Java后端进行双向通信,实现了轻量级的远程方法调用(RPC)以及数据推送功能。Java是一种广泛使用的面向对象的编程语言,常用于构建服务器端应用。JMS...

    flex + blazeDs

    Remoting服务使得Flex客户端能够直接调用Java服务器上的远程方法,仿佛这些方法就在本地一样,大大简化了客户端和服务器之间的通信。Messaging服务则支持发布/订阅消息模型,允许异步通信和事件驱动的应用设计。 在...

    java+flex+blazeds配合例子

    描述中提到的"忘了写helloWorld",这可能是指没有提供一个简单的示例来演示如何从Flex客户端调用Java服务。你可以参考网上的教程,创建一个简单的Java方法(如`sayHello()`),在Flex中通过`RemoteObject`调用这个...

    flex集成blazeDS开发java web

    BlazeDS 能够与 Java 对象进行远程交互,调用 POJOs、Spring 服务和 EJB 方法,并且支持消息传递,允许双向通信。 2. AMF 协议 AMF 是一种轻量级的二进制数据格式,用于 Flash Player 和服务器之间的数据交换。与 ...

    Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立)

    远程调用服务允许 Flex 客户端直接调用服务器端的 POJOs(Plain Old Java Objects)、Spring 服务或 EJB 方法,极大地简化了分布式应用的开发。消息传递服务则支持发布/订阅模式,使得服务器端可以广播消息到多个...

    Flex通过BlazeDS与JAVA通信之HelloWord(图解)

    在本文中,我们将探讨如何使用Flex通过BlazeDS与Java进行通信,并以“HelloWorld”为例进行详细步骤的解析。Flex是一种用于构建富互联网应用程序(RIA)的框架,而BlazeDS是Adobe提供的一个开放源代码服务器端技术,...

Global site tag (gtag.js) - Google Analytics