`
yexin218
  • 浏览: 973058 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

使用BlazeDS实现Java和Flex通信

    博客分类:
  • Flex
阅读更多

作者:   Leyond 博客: http://yexin218.cublog.cn 日期: 2008-6-3

转载请注明来源。谢谢合作.

BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) Web 消息传递 (messaging) 技术,它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。这篇文章中,我讲述一种方法(也许不是最好的)使得我能够成功地利用 BlazeDS Flex 建立一个简单的程序。使用的 IDE eclipse, 而并非 Flex Builder. 下面我将逐步介绍怎么实现这个简单的程序。

1.      安装 JDK Tomcat, 并且实现成功配置。详细请见: http://blog.chinaunix.net/u/21684/showart_195064.html

2.      安装 Flex SDK. 详细请见官方文档: http://www.adobe.com/devnet/flex/?navID=gettingstarted

3.      下载 BlazeDS , 下载地址和安装方法请参考: http://opensource.adobe.com/wiki/display/blazeds/Release+Builds 。如果你使用的是 turnkey 版本(建议下载此版本)里面实际上包含了 Tomcat 服务器了。但是本人因为之前已经装好了 Tomcat6.0.16 了,所以我的安装的是自己手动的了。如果你使用的是整合 Tomcat 版本的 BlazeDS, 那么请参 http://opensource.adobe.com/wiki/display/blazeds/Installation+Guide   。下面我介绍只安装 BlazeDS web application 版本(但是仍然下载的是 Turnkey 版本)。下载的 zip 包里面包含了: blazeds.war: 主要的 BlazeDS war 文件,用来建立你的 BlazeDS 应用程序。 Sample.war 就是 BlazeDS 例子了。 Ds-console.war ,简单的 BlazeDS 部署管理程序。每一个 war 程序都是独立的,假如你使用 J2EE web 应用程序选项,那么你必须有一个 J2EE 应用服务器或者 servlet 容器。比如使用 Tomcat. 而且必须把刚才的三个 war 文件部署在 Tomcat_Home tomcat 安装目录)下的 webapps 目录下。然后重启 Tomcat 服务器,在浏览器输入: http://localhost:8080/samples 如果看到显示页面代表就成功了。如果你的应用程序需要使用 HSWLDB 数据库,那么也拷贝 .zip 文件中的 sampledb 目录到 webapps 目录下,然后启动数据库。启动方法很简单:到 sampledb 目录下,执行 startdb.bat 就可了 (windows OS) 提示:可以的话,在你的 Eclipse 目录下,找到 eclipse.ini 把最大内存数改成 512.

4. ( 可选 ) 配置 Tomcat 的用户角色。即在 Tomcat_Home/conf/tomat-users.xml 添加以下语 句:
<role rolename="manager"/><user username="abhi" password="abhi" roles="manager"/>
 

5.         利用 Eclipse 建立 Flex Project 。工程名字叫做 BlazeApp.    Application Type 选择 web application, 服务器选择 J2EE. 关联 WTP, 至于代码文件保存目录自定义。 Next

6.设置 J2EE 服务器。我们选择 Tomcat, 可能需要手动配置 (new) 。然后选择 flex war 文件,即我们放在 webapps 目录下的 blazeds.war.然后 next.

7.         接着,默认设置,也可自定义。接着 next. 其实到这里已经完成了 project 建立.

8.             接下来你可以在 eclipse 中可以看到整个工程的所有文件以及配置。在开发之前,可能需要修改 context root 配置。点击 BlazeApp 右键,选择属性,然后见到如图 , 修改 context root 值为 BlazeApp. (默认的是 WebContent, 好像不更改也可以。自行测试 )。

9.      创建 Java 文件。点击 src 文件夹,然后创建 java class. 类的包为 hello, 名字为 HelloWorld.

package hello; 
public class HelloWorld {
public String sayHelloTo(String str) {
System.out.println("Hello " + str);    
     return "Hello " + str; }    
}
 

10.      BlazeApp.mxml 文件中新建一个 text 和一个按钮,来显示从 HelloWorld 传回来的信息。

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html"> 
<mx:Script> 
 <![CDATA[ import mx.rpc.events.FaultEvent; 
   import mx.rpc.events.ResultEvent; 
      [Bindable] 
      private var helloResult:String; 
      private function sayHelloTo():void { 
        ro.sayHelloTo(inputText.text); 
        } 
       private function resultHandler(event:ResultEvent):void { 
          helloResult = event.result as String; 
             } ]]> </mx:Script> 
        <mx:RemoteObject id="ro" destination="helloworld" result="resultHandler(event)" /> 
         <mx:HBox width="100%"> 
           <mx:TextInput id="inputText"/> 
           <mx:Button label="Submit" click="sayHelloTo()"/> 
        </mx:HBox> 
       <mx:Label text="{helloResult}"/> 
    </mx:Application>

 11.       现在,我们要定义 remote object 来是的你的 flex 程序能够调用 java 类。首先来配置 /WEB-INF/flex/remoting-config.xml 文件,添加以下粗体部分来新增一个 destionation—HelloWorld 类。
<?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>hello.HelloWorld</source> 
       </properties> 
 </destination>





</service>

 12. 到此,配置结束。然后选择 BlazeApp 项目,选择在服务器上执行。即浏览地址为: http://localhost:8080/BlazedApp/BlazedApp.html 如果你能在输入框输入字段之后,点击按钮能返回 Hello,XXX 的信息,就代表成功了。如图:

13.       (我使用的例子的工程名字叫做 DSTest 除此之外操作相同,另外附录中的程序也是使用 DSTest 。请自行参考。)

14.       参考文献: http://java-x.blogspot.com/2008/03/blazeds-for-java-flex-communication.html#sampleCode

 

附件:http://download.csdn.net/source/482338

分享到:
评论
12 楼 lydawen 2009-04-30  
mreay 写道

使用的 IDE 是 eclipse, 而并非 Flex Builder..看图片就是flex builder.


eclipse装了flex builder插件而已,勿激动
11 楼 skying007 2009-01-05  
不错,thanks
10 楼 chenfx2008 2008-09-10  
我用的是myeclipse,用本文的方法,怎么也找不到找不到直接将建立好的flex工程
发布到tomcat服务器下,郁闷了半天。我估计大家遇到的问题和我都差不多。
其实,说到底,就是建立一个webproject,这个webproject要用到BlazeDS的一些东西,需要
将BlazeDS 所需的jar,以及一些配置文件建立好,然后发布到j2ee服务器上,就可以了,没有什么特殊的。

建议大家参考有一下这篇文章。http://wangyu.iteye.com/blog/235296
对整合flex和java写的比较透彻。
9 楼 yexin218 2008-06-11  
我使用的是eclipse j2ee那个。好像没有安装WTP,也可以使用的...http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/europa/winter/eclipse-jee-europa-winter-win32.zip
8 楼 sitty 2008-06-10  
一定要装WTP吗。。
WTP是做什么用的。。
不装可以用吗
7 楼 yexin218 2008-06-10  
如果还不行的话,可以下载我打包的源码....
6 楼 yexin218 2008-06-10  
不行的话,你还可以参考
http://blog.baao.com/blojsom/blog/yac/BlazeDS/BlazeDS-avec-Flex-builder-3-Tomcat-6-et-les-webtools?smm=y
5 楼 sitty 2008-06-10  
怎么好像都不行。。 我怎么试都不行
是不是少写了哪些啊。。
4 楼 yexin218 2008-06-04  
不是啊,eclipse也是那样的啊...不信自己看看好了
3 楼 mreay 2008-06-04  
使用的 IDE 是 eclipse, 而并非 Flex Builder..看图片就是flex builder.
2 楼 yexin218 2008-06-04  
有问题给我留言好了........我开始的时候也有很多问题
1 楼 bruce.peng 2008-06-04  
先收藏,周末回家照着试试

相关推荐

    使用BlazeDS实现Java和Flex通信之hello world

    这个“使用BlazeDS实现Java和Flex通信之hello world”示例旨在介绍如何通过BlazeDS来实现简单但关键的客户端-服务器交互。下面我们将详细探讨BlazeDS、Flex以及它们之间的通信机制,并通过“hello world”实例来具体...

    51CTO下载-使用BlazeDS实现Java和Flex通信(PDF+源码

    `DSTest`可能是包含一个或多个例子,展示如何在实际项目中应用BlazeDS进行Java和Flex通信。通常,这些例子会包括创建Flex客户端、定义Java服务、配置BlazeDS服务以及处理通信交互的代码。 10. **总结** 通过...

    最简单的BlazeDS实现flex与java通信.rtf

    最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的BlazeDS实现flex与java通信..无积分下载...最简单的...

    用BlazeDS实现Java和Flex通信

    ### 使用BlazeDS实现Java与Flex通信的关键知识点 #### 一、引言 随着Web技术的发展,前后端的通信方式也变得越来越多样化。其中,Flex作为一种流行的应用开发框架,经常被用于构建丰富的互联网应用程序(RIA)。...

    使用BlazeDS实现flex与java 整合

    总结,使用BlazeDS整合Flex和Java能实现高效的前后端交互,但同时也需要注意性能优化、安全配置以及错误处理等多个方面。通过熟练掌握BlazeDS的使用,开发者可以构建出响应快速、功能强大的富互联网应用。

    BlazeDS实现flex与java通信

    在本文中,我们将深入探讨如何使用BlazeDS实现Flex与Java之间的通信,以及其核心功能和工作原理。 1. **Remoting服务** BlazeDS的Remoting服务允许Flex客户端直接调用Java后端的远程方法,仿佛这些方法是本地的。...

    使用BlazeDS实现Flex与Java通信

    在Windows环境下,配置BlazeDS以实现Flex与Java的通信主要涉及以下步骤: 1. **环境准备**: 确保已按照《Flex3超入门讲座:事前准备(Windows编)》进行环境设置,包括安装Flex Builder 3和BlazeDS,确保操作系统...

    blazeds下载,java和flex的通信工具

    Blazeds是Adobe官方推出的一款开源工具,全称为BlazeDS Project,它是Java和Flex之间进行数据通信的重要桥梁。Blazeds使得开发人员能够利用Java后端服务与Flex前端应用程序进行实时的双向通信,实现富互联网应用...

    JAVA通过BlazeDS与FLEX通信

    JAVA通过BlazeDS与FLEX通信 BlazeDS.zip java项目,使用MYECLIPSE导入 FlexJavaServer.fxp FLEX项目,使用FLASHBUILDER4.5导入

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

    本实例重点探讨了如何使用Flex作为前端,通过BlazeDS与Java后台结合JMS服务进行通信,实现数据的实时推送,从而达到页面实时刷新的效果。下面将详细介绍这一技术栈中的关键知识点: 1. **Flex**:Flex是基于...

    Flex与Java实现通信

    本文将详细介绍如何使用BlazeDS这一基于服务器的技术来实现Java和Flex之间的通信。 #### 二、BlazeDS简介 BlazeDS是一个开放源代码的服务器端Java远程处理和Web消息传递技术,它允许开发者轻松地将Flex和AIR应用...

    基于Blazeds的flex和java双向通信

    Blazeds是Adobe提供的一种解决方案,它使得Flex和Java之间能够实现高效、实时的双向通信。本篇文章将深入探讨Blazeds在Flex和Java之间的通信机制及其应用。 1. **Blazeds简介** Blazeds是Adobe官方的Flex和Java...

    Flex与java通过BlazeDS实现通信

    【Flex与Java通过BlazeDS实现通信】 Flex是一种用于创建富互联网应用程序(RIA)的开源框架,它基于ActionScript和Flex SDK。Java则是一种广泛使用的后端开发语言,两者之间的通信通常需要中间件来实现。BlazeDS是...

    基于BlazeDS实现股票系统中Flex与Java的通信.pdf

    本文介绍了基于BlazeDS技术在股票系统中解决Flex前台与Java后台之间的通信问题,并以股票系统中的算法调用为例,展示了BlazeDS的具体配置方法和实现细节。 一、 Flex技术概述 Flex是一种高效、免费的开源框架,也...

Global site tag (gtag.js) - Google Analytics