对于很多Flex初学者来说,利用开源的BlazeDS进行Web开发是一个明智的选择,但是实际操作中却经常会遇到配置问题。我也从网上的教程到自己的实际操作,走了不少弯路,最后成功配置了开发环境,在此总结一下。在此对guan0000ff表示感谢。
1)、准备工作:
1.Flash Builder 4
可以到Adobe中国官网上去下载,地址:https://www.adobe.com/cfusion/tdrc/index.cfm?product=flash_builder&loc=zh_cn
2.Eclipse
MyEclipse 6.0版本,地址:http://xiexiejiao.cn/java/myeclipse-8-0-ga-download-collection-linux-mac.html
3.BlazeDS
下载地址:http://opensource.adobe.com/wiki/display/blazeds/Downloads
我下载的是:blazeds-turnkey-3.2.0.3978.zip
由于BlazeDS Turnkey中包含BlazeDS的使用例子,对于入门熟悉Flex及BlazeDS都有较好的参考价值,因此建议下载BlazeDS Turnkey。
关于blazeds-turnkey 的目录说明:
docs:BlazeDS Javadoc
resources:BlazeDS的相关支持包,包括clustering(采用jgroups)、BlazeDS与ColdFusion 集成的配置文件、BlazeDS的配置文件、BlazeDS与AJAX集成的桥、Flex的SDK、Flex的java library、BlazeDS与Tomcat、Jboss、Websphere等security集成的支持包。
sampledb:hsqldb的启动脚本及样例数据库
tomcat:Tomcat 包
blazeds.war:最小化的BlazeDS 文件,可以作为空白项目来建立BlazeDS 应用程序。
sample.war:BlazeDS的demo例子(所谓的testdrive)。
ds-console.war :BlazeDS的部署管理程序。
4.Apache Tomcat
我用的是apache-tomcat-6.0.20.exe,可执行文件版本,方便操作。
2)、 过程:
1、打开MyEclipse,新建一个Web Project,名为FlexDemo。
2、在FlexDemo/src目录下新建类HelloWorld
代码如下:
package com.cn; /** * <p>功能:</p> * <p>生成日期: 2010-7-16</p> * <p>说明:</p> * @author woijava
* @version V1.0 * @修改日志: */ public class HelloWorld { public HelloWorld() { }
public String getHelloWorld(String name) { return "Hello "+name +"!"; } } |
3、为FlexDemo添加blazeds支持:
解压BlazeDS.war,blazeds内包含了WEB-INF和META-INF文件夹;
将%TOMCAT_HOME%/webapps/BlazeDS/WEB-INF/lib目录下面所有jar文件拷贝到 flexDemo 的webRoot/WEB- INF/lib 目录下;
将%TOMCAT_HOME%/webapps/blazeds/WEB-INF/flex 目录拷贝到Demo的webContent/WEB-INF 下;
将如下代码添加到FlexDemo下的 web.xml 中;
<!-- 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> <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> |
至此,我们的FlexDemo已经具备了blazeds 的功能。
4、部署应用FlexDemo到Tomcat服务器中。
下图是完整的项目目录:
5、打开Flash Builder 4,“新建”—“Flex项目”
点击“下一步”:
点击“完成”
6、编辑FlexDemo.mxml 代码如下:
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Script> <![CDATA[ protected function button1_clickHandler(event:MouseEvent):void { // TODO Auto-generated method stub var iname:String=tiName.text; say.getHelloWorld(iname); } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <s:RemoteObject id="say" destination="helloWorld"/> </fx:Declarations> <s:Panel x="190" y="67" width="394" height="228" title="Flex与Java交互实例"> <s:Button x="265" y="13" label="提交" click="button1_clickHandler(event)"/> <s:TextInput x="89" y="12.5" id="tiName"/> <s:Label x="39" y="17.5" text="姓名: "/> <s:Label text="{say.getHelloWorld.lastResult}" x="44" y="85" width="291" height="71" id="lbView" color="#5D44F5" fontSize="20" fontWeight="bold" textDecoration="none" fontStyle="normal"/> </s:Panel> </s:Application> |
7、右键项目名称,点击“属性”—“Flex构建路径”,修改输出文件夹 URL;
8、进入MyEclipse,编辑WEB-INF/flex/remoting-config.xml文件:(记住是添加哟)
<destination id="helloWorld"> <properties> <source>com.cn.HelloWorld</source> </properties> </destination> |
注意:helloWorld跟FlexDemo.mxml文件中的destination值相同。
9、启动Tomcat服务。
10、运行FlexDemo.mxml即可。这是运行后的效果。
如果你用的是Flash Builder 4的插件版本,可以参考如下文章:
http://blog.csdn.net/liang_shujian/archive/2010/05/28/5629637.aspx