.     

 整合Flex和Java 配置文档说明文档

 

 

关于Flex+Java的配置一共有如下三种:

n         第一种:Java工程和Flex工程独立,这种方式很多人在使用,Flex程序员和Java程序员相互独立的工作。

n         第二种:Flex工程加入Java元素。(编译出来为html文件)

n         第三种:由Web project工程反向加入Flex,也就是Java+Flex。(编译出来为swf文件)

  

现主要说明后二种方法,在现在的开发环境下(jdk版本:1.6.0;平台:MyEclipse6.5;服务器:Tomcat5.5)(开发环境其它版本没有试验 ) 引入Flex。需要相关Flex资料如下:

u       Flex插件,下载地http://trials.adobe.com/Applications/Flex/FlexBuilder/3/FB3_WWEJ_Plugin.exe (注册码:1377-4868-2899-3328-2083-1968);

u       用BlazeDS(免费)代替LCDS(收费):从Adobe官方网站上下载下来(下载类型为:turnkey),将blazeds.war、ds-console.war、samples.wa三个文件放在tomcat的webapps目录下。                                   

下载地址:http://download.macromedia.com/pub/opensource/blazeds/blazeds_turnkey_3-0-0-544.zip

 

I.      Flex插件安装步骤说明:

1)       双击可执行文件FB3_WWEJ_Plugin.exe,前面步骤按下一步或者同意、需要注意下面步骤。

 

2)       注意:这一步很重要,是要你选择MyEclipse6.0中的Eclipse的安装路径,请仔细选择。然后点击“next”按钮即可。

sdks放到d盘安装的myeclipse下

 

3)       此界面是询问你是不是要安装IE和FireFox浏览器上的flash play 9,我还是希望大家两项都选,便于调试。然后点击“next”按钮。

 

4)       安装完毕后,打开你FlexBuilder插件安装的文件夹,将里面的features和plugins两个文件夹内的文件对应复制到“eclipse”文件夹里的features和plugins两文件夹,然后将FlexBuilder插件安装的文件夹中的sdks放入到MyEcipse6.0下的eclipse文件夹下。

 

II.  先采用Flex工程加入Java元素:

 

1)       切换到Flex视图,新建Flex project,如下图

 

 

2)       点击Next,配置J2EE服务器,如下图  

 

 

3)      

点击下一步,采用默认的配置就可以,点击完成,该工程就建立完成。下图为该工程的目录结构

 

4)       让它变成web工程由MyEclipse发布,如下图

 

 

5)       工程建好以后,你可以通过右键—>属性来进行更多的设置。

 

 

6)       这样一个Flex+Java的工程就建立完成。

 

7)       编写例子。

 

       i.   新建一个java类:Hello.java (放到src文件夹的com包下)

package com;

public class Hello {

public String hello(String name) {

System.out.println("flex调用我了,真好~~~~");

return "hello "+name;

}

}

 

    ii.   为flex配置这个要调用的对象,修改WEB-INF/flex下remoting-config.xml 加入:

<destination id="hello">

<properties>

<source>com.Hello </source>

</properties>

</destination>

 

iii.   编写一个Flex程序 ( flexweb.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.rpc.events.ResultEvent;

function gg(evnet:ResultEvent):void{

var ff:String = evnet.result as String;

ggg.text = ff;

}

function remotingSayHello():void{

var sname:String = nameInput.text;

h.hello(sname);

}

]]>

</mx:Script>

<mx:RemoteObject destination="hello" id="h"

result="gg(event)" endpoint="http://localhost:8080/MyFlex2/messagebroker/amf" >

</mx:RemoteObject>

<mx:TextArea id="ggg" x="109" y="122"/>

<mx:Button label="say hello" click="remotingSayHello();" x="144" y="193"/>

<mx:TextInput id="nameInput" x="109" y="73"/>

<mx:Label text="name" x="47" y="75"/>

</mx:Application>

(编写Flex程序里有一句要注意一下:endpoint=http://localhost:8080/MyFlex2/messagebroker/amf;具体的地址修改地方:在flex文件夹中配置文件services-config.xml中可以更改,先可以不用管,MyFlex2是flex项目名! 要与你创建的flex项目名一致)

 

    iv.   重启tomcat,运行flexweb.mxml。运行效果:

 

 

 

 

 

 

 

 

III.            采用Web project反向加入Flex:

 

1)       先建立一个web工程:MyFlex1。(略)

 

2)       向MyFlex1工程手工添加Flex需要的元素。

       i.   首先将BlazeDS需要的jar文件拷到工程的lib目录下。可以将刚才MyFlex2项目中的lib下的jar文件全部拷到该工程下的lib目录下。

    ii.   然后要加入Flex BlazeDS需要的配置文件。在WEB-INF下新建一个名为flex的文件夹,然后将MyFlex2项目中的WEB-INF/flex目录里的所有xml文件拷到该文件夹下。

 

3)       最后,修改web.xml文件,加入Flex的配置。将MyFlex2项目中的web.xml的部分代码拷过来。如下:

<context-param>

<param-name>flex.class.path</param-name>

<param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value>

</context-param>

<!-- Http Flex Session attribute and binding listener support -->

<listener>

<listener-class>flex.messaging.HttpFlexSession</listener-class>

</listener>

<!-- MessageBroker 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>

<servlet-mapping>

<servlet-name>MessageBrokerServlet</servlet-name>

<url-pattern>/messagebroker/*</url-pattern>

</servlet-mapping>

 

4)       将该工程发布到tomcat下,并启动tomcat。

 

5)       然后在该工程上右键àFlex Project NatureàAdd Flex Project Nature

 

6)       配置flex默认的sdk。这样配置完,还不行,程序可能还不能正常地运行,还需要配置他使用的sdk。如下图

 

 

 

6、编写测试类跟上面步骤一样,略。

 

7、编译出来的是swf文件,查看地址应该为:http://localhost:8080/MyFlex1/MyFlex1.swf。运行效果同上。