代码改变世界

.NET程序员也用JAVA:使用BlazeDS,SpringFramework,MySql,Flex构建RIA应用 part 1 :环境搭建.

2009-01-10 12:20  Otis's Technology Space  阅读(604)  评论(0编辑  收藏  举报

先介绍一下开发环境:

IDE: my eclipse 6.5 + Flex Builder 3

DB: MySql 5.1

以上环境设置成功后,先去下载SpringFramework , BlazeDS  ,SpringFramework就不用介绍了,BlazeDS  是LiveCycle Data Services 功能简化开源版. 之后用到的组件之后再介绍.

在My Eclipse 中新建Flex Application,如下图设置.p1

下一步设置如下图:

image

pp

点击Finish完成.然后右点刚才新建的项目,选择 Add Web Project Capabilitees... 这大概是为了用上My Eclipse 自动布署功能.在开发用也能用My Eclipse自带的Tomcat或其它应用服务器.比较方便.

image 

下一步如下图.

ddd

下面确定My Eclipse Tomcat的端口.我这里是设定为: 8099;

image

修改Flex 的 Build Path如下图:

image

flex Server如下图.

image

最后将项目布署到MyEclipse的tomcat.如下图..

image

还没加Springframework的支持,不过现在运行Hello world已经可以了.下面写一个hello world的程序.

Java代码如下:

package cn.otis.blazeds.test;

public class HelloWord {
    public String SayHi(String str){
        return "Hi, " + str;
    }

}

remoting-config.xml设置如下:

<?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>
    <!-- sayHI -->
    <destination id="sayHI">
        <properties>
            <source>cn.otis.blazeds.test.HelloWord</source>
        </properties>
    </destination>
</service>
Flex_Springframework_BlazeDS_Test.mxml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="appComplete();" layout="vertical"
     verticalAlign="middle" horizontalAlign="center">
<mx:Script>
    <![CDATA[
        import mx.events.FlexEvent;
        import mx.controls.*;
        import mx.rpc.events.*;
        private function appComplete():void{
            btn_sayHi.addEventListener(MouseEvent.CLICK,SayHi);    
            ro_HI.addEventListener(ResultEvent.RESULT,ReturnValue);
        }
        private function SayHi(e:MouseEvent):void{
            ro_HI.SayHi(tb_name.text,ReturnValue);
        }
        private function ReturnValue(e:ResultEvent):void{
            Alert.show(e.result.toString(),e.result.toString());
        }
    ]]>
</mx:Script>
<mx:RemoteObject id="ro_HI" destination="sayHI" />
    <mx:Panel width="250" height="200" layout="absolute" title="说Hi">
        <mx:TextInput x="35" y="37" id="tb_name"/>
        <mx:Button x="82" y="87" id="btn_sayHi" label="说Hi"/>
    </mx:Panel>
    
</mx:Application>

最后运行效果如下:

image