﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-linlinyu-文章分类-flex</title><link>http://www.blogjava.net/linlinyu/category/35094.html</link><description>linlinyu</description><language>zh-cn</language><lastBuildDate>Thu, 09 Oct 2008 18:58:40 GMT</lastBuildDate><pubDate>Thu, 09 Oct 2008 18:58:40 GMT</pubDate><ttl>60</ttl><item><title>Flex 访问 Ejb如此简单</title><link>http://www.blogjava.net/linlinyu/articles/233445.html</link><dc:creator>linlin yu</dc:creator><author>linlin yu</author><pubDate>Thu, 09 Oct 2008 13:32:00 GMT</pubDate><guid>http://www.blogjava.net/linlinyu/articles/233445.html</guid><wfw:comment>http://www.blogjava.net/linlinyu/comments/233445.html</wfw:comment><comments>http://www.blogjava.net/linlinyu/articles/233445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/linlinyu/comments/commentRss/233445.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/linlinyu/services/trackbacks/233445.html</trackback:ping><description><![CDATA[<ul type="1">
    <li>开始之前<br />
    在<span id="linkeyes0" onclick="thunderdisplayarr[0].Click(0, 1000, event)" onmouseover="thunderdisplayarr[0].Display(0, event)" onmouseout="thunderdisplayarr[0].Hide(0)" style="border-bottom: 1px dashed; padding: 0pt; color: blue; text-decoration: underline; cursor: pointer; display: inline; float: none;">学习</span>本文内容之前，你至少要能用JAVA、EJB和Flex写出Helloword这样简单的应用程序，并且下载安装了<span href="http://pomer.5d6d.com/tag.php?name=Pomer" onclick="tagshow(event)" class="t_tag">Pomer</span>和运行过PomerUserIndex.mxml，但不一定要了解<span href="http://pomer.5d6d.com/tag.php?name=blazeds" onclick="tagshow(event)" class="t_tag">blazeds</span>和<span href="http://pomer.5d6d.com/tag.php?name=lcds" onclick="tagshow(event)" class="t_tag">lcds</span>。如果阅读过<a href="http://pomer.5d6d.com/thread-12-1-1.html" target="_blank">Pomer简介</a>、<a href="http://pomer.5d6d.com/thread-14-1-1.html" target="_blank">Pomer下载与安装</a>和<a href="http://pomer.5d6d.com/thread-15-1-1.html" target="_blank">Pomer架构介绍</a> 有助于学习本文。<br />
    <br />
    </li>
    <li>概述<br />
    本文主要演示通过blazeds/lcds访问远程EJB，Pomer框架封装了blazeds/lcds的访问式，用户无须添加配置文件，只须在EJBDestinationRegister注册即可将Java对象发布成blazeds/lcds的远程对象（<span href="http://pomer.5d6d.com/tag.php?name=RemoteObject" onclick="tagshow(event)" class="t_tag">RemoteObject</span>），进行远程访问。<br />
    <br />
    <br />
    </li>
    <li>新建EJB项目并增加一个无状态的SessionBean<br />
    在Myeclipse中如何新建和布署EJB不在本讲解范围，用户可参照MyEclipse相关帮助文档。<br />
    用户自己建一个HelloEJB的SessionBean，并增加public String hello(String name)方法; 确认HelloEJB可以被远程访问<br />
    <br />
    <br />
    </li>
    <li>注册EJB<br />
    在cn.org.pomer.<span href="http://pomer.5d6d.com/tag.php?name=flex" onclick="tagshow(event)" class="t_tag">flex</span>.remoting.services.EJBDestinationRegister的构造函数增加EJB注册信息。
    <div class="blockcode"><em onclick="copycode($('code0'));">复制内容到剪贴板</em>
    <h5>代码:</h5>
    <code id="code0">public EJBDestinationRegister() {<br />
    super();<br />
    this.list = new ArrayList&lt;EJBDestination&gt;();<br />
    <br />
    //add here<br />
    add("helloEJB", "HelloServicesImpl/remote");<br />
    }</code></div>
    </li>
    <li>新建Flex应用HelloEJB.mxml
    <div class="blockcode"><em onclick="copycode($('code1'));">复制内容到剪贴板</em>
    <h5>代码:</h5>
    <code id="code1">&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
    &lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"&gt;<br />
    &lt;mx:Script&gt;<br />
    &lt;![CDATA[<br />
    import mx.controls.Alert;<br />
    import mx.rpc.events.ResultEvent;<br />
    import mx.rpc.events.FaultEvent;<br />
    private function helloClick():void{<br />
    helloSpring.hello("pomer");<br />
    }<br />
    private function helloEJBFault(e:FaultEvent):void{<br />
    Alert.show(e.fault.message.toString());<br />
    }<br />
    private function helloEJBResult(e:ResultEvent):void{<br />
    Alert.show(e.result as String);<br />
    }<br />
    ]]&gt;<br />
    &lt;/mx:Script&gt;<br />
    <br />
    &lt;mx:RemoteObject endpoint="../messagebroker/amf"<br />
    id="helloEJB"<br />
    fault="helloEJBFault(event)"<br />
    result="helloEJBResult(event)"<br />
    destination="helloEJB" showBusyCursor="true"/&gt;<br />
    <br />
    <br />
    &lt;mx:Button label="hello" click="helloClick();"/&gt;<br />
    &lt;/mx:Application&gt;</code></div>
    </li>
    <li>布署运行<br />
    <ul><br />
        <li>启动Tomcat，日志出现如下标记，布署成功<br />
        </li>
    </ul>
    <br />
    <img src="http://lh5.ggpht.com/yulinlincom/SOHriiRFAmI/AAAAAAAAAeA/LYqr1lhJuN8/hello-ejb-tomcat.JPG" onclick="zoom(this, this.src)" onload="attachimg(this, 'load')" alt="" border="0" /><br />
    <ul><br />
        <li>右击HelloJava.mxml-&gt;Run as-&gt;Flex application<br />
        </li>
    </ul>
    <br />
    <br />
    <br />
    </li>
    <li>原理分析<br />
    查看WEB-INF\flex\services-
    config.xml，EJBRemotingDestinationBootstrapService类从
    EJBDestinationRegister类得到所有要远程访问的Ejb，自动加入服务中。EJBFactory根据
    EJBDestinationRegister提供的内容自动创建远程对象。<br />
    <img src="http://lh4.ggpht.com/yulinlincom/SOHrjEouEII/AAAAAAAAAeY/ryw0XRxRztU/hello-ejb.JPG" onclick="zoom(this, this.src)" onload="attachimg(this, 'load')" alt="" border="0" /></li>
</ul>
 <img src ="http://www.blogjava.net/linlinyu/aggbug/233445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/linlinyu/" target="_blank">linlin yu</a> 2008-10-09 21:32 <a href="http://www.blogjava.net/linlinyu/articles/233445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>