.
整合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。运行效果同上。