myeclipse安装flex插件后开发flex讲解

》》》》》》》》》》》》》》》》启动安装Flex插件的myeclipse。《《《《《《《《

 

  1、新建Flex project;

 

2、这一步,就是需要注意create combined Java/Flex prject using WTP这一项一定要勾上,Java Source Folder就是Java业务代码存放的根目录,默认用src即可,无须改动。这样就将Java和FlexLCDS代码放在一起了。

3、这一步很重要的。Targe runtime其实可以不选,但是不选不能到下一步。如果没有,就需要New一个,参考下边页面。

Tomcat的即可。

  Contextfolder就是最终编译的容器目录。

 

Flex WAR file就是选择BlazeDS的blazeds.war(下载的BlazeDS Turnkey包中有,这个包中还有Demo,包括自带的Tomcat),如果是LCDS,就是flex.war的路径。

从http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/下载BlazeDS

 

 

  Outputfolder是Flex编译后swf和html文件的目录,按照常规,最好加个bin路径:)

 

 4、Main source folder是放Flex源码存放目录,和Java分开。

Output folder URL是开发过程中运行和请求的路径,端口默认是8080(自己改,记得要改部署的应用服务器配置文件)。

到这一步,Finish,但是这里的配置并不能全部保存正确,所以下边部署完后的一些步骤非常重要,否则Flex无法通过LCDS(BlazeDS)和JAVA通信。

5、生成的代码结构如下(生成很多默认的配置文件,方便开发):

 6、发布成J2EE项目,这样就可以和Spring、Hibernate等等集成了;

这一步一定要注意,去掉Create web.xml的勾,这样就不会覆盖LCDS(BlazeDS)创建的web.xml文件。

图标变成J2EE,不是Fx的标志了。

7、部署到Tomcat。

点击finished。则会开始部署,成功后,Deployment status会提示Success,并且看到列表中的项目已经成功部署。

8、上边的配置没有完全保存,所以要进行一些修改,第一个就是修改Output folder Url》》》项目属性,点击Flex Build Path,如下界面

Output folder这样每次发布都会自动将编译的最终swf放到WebRoot\bin目录下。

Output folder URL后边加上bin,在发布和请求时,直接请求这个路径。运行Application,如下图:

  如果出现以下界面,则说明配置正确:

9、最后步骤:修改参数才能使Flex和Java通过LCDS(BlazeDS)正常通信。

Root URL就是web服务器的根路径。端口可以自己改动。

Context root是LCDS(BlazeDS)工程的名称,因为Flex和Java是一个工程,所以这儿也就是新建的Flex Project工程名称。如果J2EE和Flex是两个项目,那么这个是J2EE项目的名称而不是Flex项目的名称。

Flex请求LCDS(BlazeDS)时,需要使用Context root这个参数。

  格式:http://{server.name}:{server.port}/{context.root}/messagebroke/amf

所以这一步的配置非常重要,特别是context root这一项。

》》》》》》》此配置测试代码:

testJF.mxml:

<?xml version="1.0" encoding="utf-8"?>   

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">   

     <mx:RemoteObject id="destination" destination="helloWorld">              

     </mx:RemoteObject>   

     <mx:Button x="335" y="80" label="点击" click="remotingHello(event);"/>     

 

  

     <mx:TextInput x="159" y="80" id="tiName"/>        

     <mx:Label x="109" y="82" text="name:"/>        

     <mx:Label text="{destination.getHelloWorld.lastResult}" x="44" y="162" width="448"

 

height="71" id="lblView" color="#FCEE09"    

  

fontSize="20" fontWeight="bold" textDecoration="underline" fontStyle="normal"/>      

 

 

     <mx:Script>

        <![CDATA[

            public function remotingHello(event:Event):void{           

                 var iname:String=tiName.text;             

                 destination.getHelloWorld(iname);

                 aaid.text = destination.aa;

             }

        ]]>

     </mx:Script>      

     <mx:Label id="aaid" x="56" y="215" text="发送前" width="154" height="29" fontSize="14"/>

</mx:Application>

 

HelloWorld.java:

package com.blazeds.test;   

 

public class HelloWorld {   

  

    public HelloWorld() {   

    }   

    public String aa = "123";

    public String getHelloWorld(String name) {   

        return "Hello World!    我输入的名字是: "+name;   

    }   

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>

    <destination id="helloWorld">

       <properties>

           <source>com.blazeds.test.HelloWorld</source>

       </properties>

    </destination>

 

</service>

 

Tomcat启动数据源报错的解决方法:

严重: Null component Catalina:type=DataSource,path=/testJF,host=localhost,class=javax.sql.DataSource ,name="jdbc/ora/xxyp"

将部署项目下WEB-INF中lib目录的naming-factory.jar,naming-factory-dbcp.jar两个文件删除即可。

 

上面的代码有误,正确如下:

<?xmlversion="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:RemoteObject id="destinat" destination="helloJava" result="succResult(event)"fault="faResult(event)">

    </mx:RemoteObject>

    <mx:Button x="191" y="229" label="点击" click="remotingHello(event)"/>

    <mx:TextInput x="278" y="229" id="tiName"/>

    <mx:Label x="204" y="279" text="name" width="56" height="28" textDecoration="normal"fontSize="14"/>

    <mx:Label x="204" y="303"  id="lblView"fontSize="20" fontWeight="bold" textDecoration="underline" fontStyle="italic" color="#0DF818"/>

    <mx:Label x="204" y="352" text="发送前" id="aaid" fontSize="14"/>

    <mx:Script>

       <![CDATA[

           import mx.controls.Alert;

           import mx.rpc.events.FaultEvent;

           import mx.rpc.events.ResultEvent;

           public var str:String;

           public function faResult(event:FaultEvent):void{

              Alert.show(event.fault.toString());

           }

           public function succResult(event:ResultEvent):void{

              str = event.result.toString();

              Alert.show(str);

              lblView.text = str;

//也可以用text="{destinat.getHelloJava.lastResult}"获得显示信息

              var aa:String = "发送后";

              aaid.text = aa;

                  }

           public function remotingHello(event:Event):void{

              var iname:String = tiName.text;

              destinat.getHelloJava(iname);            

           }

       ]]>

    </mx:Script>

</mx:Application>

 

 

 

阅读更多
个人分类: flex
上一篇修改mysql数据库编码
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭