第一章
开发环境准备
第一节 准备Eclipse
1、准备好JDK6u24,Tomcat。
2、下载:Eclipse 3.5.2(伽利略),All in one,即Eclipse IDE for Java EE Developers,解压到D盘。
3、添加fatjar插件:
help->new software->url内容:http://kurucz-grafika.de/fatjar
4、添加PropertiesEditor插件。
第二节 安装 Flex 4:
1、下载FlashBuilder_4_Plugin_LS10.exe,选英文,默认安装,没什么好说的。
2、拷贝C:\Program Files\Adobe\Adobe Flash Builder 4 Plug-in\eclipse,中的AMT、features、plugins到D:\eclipse下覆盖。进入C:\Program Files\Adobe\Adobe Flash Builder 4 Plug-in,拷贝sdks文件夹到D:\eclipse下,可以仅拷贝4.1.0。
3、启动Eclipse,菜单Windows\Preferences\Flash Builder\“已安装的Flex Sdk”,修正SDK位置。
第三节 安装BlazeDS
1、下载网址blazeds 4.0.0.14931:
http://opensource.adobe.com/wiki/display/blazeds/download+blazeds+4
2、解压备位,我一般放在d:\eclipse\blazeds,只留取三个*.war即可。
第四节 使用WTP创建Java/Flex组合项目
1、New\FlashBuilder\“Flex项目”
2、“新建 Flex 项目”对话框中对应以下几项:
项目名:BlazeApp
项目位置:勾选默认即可
应用程序类型:Web (在Adobe Flash Player中运行)
Flex SDK 版本:默认即可
应用程序服务器类型:J2EE
远程对象访问服务:选择 BlazeDS
使用 WTP 创建 Java/Flex 组合项目:选上
点击 Next
3、在“配置 J2EE 服务器”页对应以下两项,其他项默认即可
目标运行时:Apache Tomcat v6.0
BlazeDS WAR 文件:选择上面准备好的 blazeds.war
点击 Next
4、在Eclipse中新建一个Flex Project名为BlazeApp,服务器选J2EE。
J2EE Settings中的Flex war File选择BlazeDS解药后得到的blazeds.war。
建完工程后需要修改一下Context root,右键-> Properties -> Flex Server -> Context root 改成/BlazeApp. (我的是灰色,不能修改,所以打开项目根文件夹下的 .flexProperties 文件,更改其中的 serverContextRoot=“/WebContent” 为serverContextRoot=”/ BlazeApp”。 别忘了刷新项目)
在src目录下新建包demo,在包下新建类HelloWorld,代码如下:
package demo;
public class HelloWorld {
public String sayHello(String name){
System.out.println("Hello "+name);
return "Hello "+name;
}
}
修改WebContent/WEB-INF/flex/remoting-config.xml,在其中加入 Xml代码
<destination id="Hello">
<properties>
<source>demo.HelloWorld</source>
</properties>
</destination>
修改BlazeApp.mxml,代码如下 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.FaultEvent;
import mx.rpc.events.ResultEvent;
[Bindable]
private var helloResult:String;
private function sayHello():void {
ro.sayHello(inputText.text);
}
private function resultHandler(event:ResultEvent):void {
helloResult = event.result as String;
}
]]>
</mx:Script >
<mx:RemoteObject id="ro" destination="Hello" result="resultHandler(event)"/>
<mx:HBox x="0" y="10" width="100%">
<mx:Label text="Name:" id="nameLabel"/>
<mx:TextInput id="inputText"/>
<mx:Button label="say Hello" id="nameButton" click="sayHello()"/>
<mx:Label id="resultLabel" text="{helloResult}"/>
</mx:HBox>
</mx:Application>
运行项目,在浏览器中输入:
http://localhost:8080/BlazeApp/BlazeApp.html,试试看~
注:在Flex4中运行上面例子可能会报错,需要在定义RemoteObject的的时候加上如下参数
Xml代码
endpoint="messagebroker/amf"