六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 6|回复: 0

Flex应用使用BlazeDS与Java应用通信

[复制链接]

升级  40%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
20
 楼主| 发表于 2013-2-3 11:19:21 | 显示全部楼层 |阅读模式
blazeDS是Adobe公司为FLex与JavaEE通信推出的技术,在FLex与JavaEE通信时起到一个数据中间层的作用,与其相似的还有LiveCycle Data Service技术,但此技术需要付费使用,对于常规学习开发,blazeDS足以。
一、blzeDS下载地址
    http://opensource.adobe.com/wiki/display/blazeds/BlazeDS
二、创建基于blazeDS的项目:
    (我的环境jdk1.5+eclipse3.6+flexBuilder3+tomcat6.0)
    1、建立一个web项目blazeTest。
    2、解压下载blaze bin包中的blaze.war(不能直接解压时可以将其放入tomcat中启动让tomcat解开此包)。
    3、用解压后blazeds文件夹中WEB-INF下得web.xml替换web项目中的web.xml(对于已有的web项目可以将其中的内容复制进去)。
    4、将blazeds文件夹下的flex和lib文件夹copy到web项目的WEB-INF目录下,其中flex文件夹下是flex与java应用不同通信方式的配置文件,lib是必要的包;也可以修改这些配置文件的位置,但是注意在web.xml中也要修改相应servlet初始化时配置文件路径,见代码:
<servlet>        <servlet-name>MessageBrokerServlet</servlet-name>        <display-name>MessageBrokerServlet</display-name>        <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>        <init-param>            <param-name>services.configuration.file</param-name>            <param-value>/WEB-INF/flex/services-config.xml</param-value>    </init-param>        <load-on-startup>1</load-on-startup>    </servlet>
    5、建立一个java测试类:
package com.test;public class Test {    public String test() {         return "balzeDS say congratulation to you";    }}      
    6、配置flex目录下的remoting-config.xml文件
<destination id="Test">       <properties>           <source>com.test.Test</source>       </properties>    </destination>
    7、服务器端搞定,发布项目等着Flex项目的访问。
Flex项目:
     1、建立felx项目,application server type中选择J2EE,next,root folder选择web项目的根目录(WebRoot或WebContent),这样编译之后的文件可以自动更新到项目中。
     2、编写测试代码:
     <?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.rpc.events.ResultEvent;     import mx.controls.Alert;          private var result:String;           private function test():void {            ro.test();            }                   private function resultHandler(event:ResultEvent):void {              result = event.result as String;            Alert.show(result);         }           ]]>   </mx:Script ><mx:RemoteObject id="ro" destination="Test" result="resultHandler(event)"/> <mx:Button label="test" id="btn" click="test()" x="201" y="10"/></mx:Application>
此时需要刷新服务器端,让tomcat加载编译后的swf文件即包装页面。
在FLex中点击运行按钮即可访问包装页面。
点击Button测试,弹出服务器返回字符串说明成功。


常见问题:
      1、如果Flex项目没有设置为自动编译,每次更改后需要手动编译,自动编译在project菜单下的第一项。
      2、修改编译之后需要在JavaEE项目中刷新一下,这样tomcat才会重新发布,否则看不到修改后的变化。
      3、确定代码中没有错,但是problems中仍有错误时,用project下的clean命令清理即可。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表