linlinyu

linlinyu
posts - 0, comments - 4, trackbacks - 0, articles - 15

Flex 访问 Ejb如此简单

Posted on 2008-10-09 21:32 linlin yu 阅读(1168) 评论(1)  编辑  收藏 所属分类: ejbjavaflex
  • 开始之前
    学习本文内容之前,你至少要能用JAVA、EJB和Flex写出Helloword这样简单的应用程序,并且下载安装了Pomer和运行过PomerUserIndex.mxml,但不一定要了解blazedslcds。如果阅读过Pomer简介Pomer下载与安装Pomer架构介绍 有助于学习本文。

  • 概述
    本文主要演示通过blazeds/lcds访问远程EJB,Pomer框架封装了blazeds/lcds的访问式,用户无须添加配置文件,只须在EJBDestinationRegister注册即可将Java对象发布成blazeds/lcds的远程对象(RemoteObject),进行远程访问。


  • 新建EJB项目并增加一个无状态的SessionBean
    在Myeclipse中如何新建和布署EJB不在本讲解范围,用户可参照MyEclipse相关帮助文档。
    用户自己建一个HelloEJB的SessionBean,并增加public String hello(String name)方法; 确认HelloEJB可以被远程访问


  • 注册EJB
    在cn.org.pomer.flex.remoting.services.EJBDestinationRegister的构造函数增加EJB注册信息。
    复制内容到剪贴板
    代码:
    public EJBDestinationRegister() {
    super();
    this.list = new ArrayList<EJBDestination>();

    //add here
    add("helloEJB", "HelloServicesImpl/remote");
    }
  • 新建Flex应用HelloEJB.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.controls.Alert;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.events.FaultEvent;
    private function helloClick():void{
    helloSpring.hello("pomer");
    }
    private function helloEJBFault(e:FaultEvent):void{
    Alert.show(e.fault.message.toString());
    }
    private function helloEJBResult(e:ResultEvent):void{
    Alert.show(e.result as String);
    }
    ]]>
    </mx:Script>

    <mx:RemoteObject endpoint="../messagebroker/amf"
    id="helloEJB"
    fault="helloEJBFault(event)"
    result="helloEJBResult(event)"
    destination="helloEJB" showBusyCursor="true"/>


    <mx:Button label="hello" click="helloClick();"/>
    </mx:Application>
  • 布署运行

    • 启动Tomcat,日志出现如下标记,布署成功



    • 右击HelloJava.mxml->Run as->Flex application



  • 原理分析
    查看WEB-INF\flex\services- config.xml,EJBRemotingDestinationBootstrapService类从 EJBDestinationRegister类得到所有要远程访问的Ejb,自动加入服务中。EJBFactory根据 EJBDestinationRegister提供的内容自动创建远程对象。

Feedback

# re: Flex 访问 Ejb如此简单  回复  更多评论   

2012-03-01 14:33 by akan
我是特意来感谢的,一个游戏项目做了2年多,还挺火的一个游戏,最近辞职了重新审视架构代码,才发现用的原来是楼主的框架。这个架构对我这个老java程序员,最好的地方是自动生成代码那块,省了不少工作量。我希望在通信模块和db那块都做些修改,以便更适应今天的游戏项目,有了进展再来你这里。

只有注册用户登录后才能发表评论。


网站导航: