Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立)
一、所需的软件
我的配置:MyEclipse10 + Tomcat 7.0 + Flex Builder4.5 + BlazeDS
二、配置服务器端(MyEclipse10 + Tomcat 7 + BlazeDS)
1. 先将 BlazeDS 压缩包解开,然后找到 blazeds.war ,再用 winrar 解压缩的一个目录,如blazeds目录。
2. 打开 MyEclipse,配置 Tomcat 服务器:Window -> Preferences -> MyEclipse -> Servers -> Tomcat -> Tomcat 7.x 配置,Tomcat home directory 为 Tomcat 的安装路径,同时选择 Tomcat server -> Enable。配置完了后,别忘记配置JDK。
3.下一步,在 MyEclipse 中创建一个 Web Project,工程名 blazeds_project。
4. 在左侧视图中选中WebRoot,右键 -> Import -> General->FileSystem -> 选择 BlazeDS 安装目录下的 blazeds 文件夹。全部选中后打勾,Finish。之后出现是否覆盖的提示框,选择"Yes To All"。
5. 然后在本工程的 src 目录下编写一个 Java 类(包名cn.zy,类名 HelloWorld);
package cn.zy;
public class HelloWorld {
public String getHello(){
return "Hello World!"+ " 这是从java返回。";
}
}
6. java 类写好了,要在 remoting-config.xml (路径在WebRoot/WEB-INF/flex目录下)中声明这个类(红色字体字部分);
<?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>cn.zy.HelloWorld</source>
</properties>
</destination>
</service>
7. 配置好Tomcat,将这个项目部属到 Tomcat 中,然后启动Tomcat服务。
三、创建 Flex 客户端
1. 新建一个名称为 flex_client的Flex 项目,应用服务器类型,选择java;勾选"使用远程对象访问服务",在下面选择BlazeDS(B);
2. 设置服务器路径,这是关键的一步。Root folder 为刚刚在 Tomcat 中部署的 blazeds_project 项目路径。为了保持一致性,Root URL 和 Context root 中的相对路径的名称都与该 web 项目名称保持相同。这三项内容填写好后,需要点击 “Validate Configuration” 按钮,进行配置验证(此时最好让 Tomcat 处于开启状态)。验证完成后点击 Finish。
3. 最后编写客户端(flex_client.mxml),新建一个Flex项目,名称为FlexClient;
<?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:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<mx:RemoteObject id="remoteObject" destination="helloWorld" result="resultHandler(event)" fault="faultHandler(event)" />
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private function resultHandler(event:ResultEvent):void{
Alert.show(event.result.toString(),"成功");
}
private function faultHandler(event:FaultEvent):void{
Alert.show(event.fault.toString(),"失败");
}
]]>
</fx:Script>
<mx:Button label="发送消息" click="remoteObject.getHello()" x="256" y="200" />
</s:Application>
4. 完成。运行 felx_client,收到服务器端返回的 “Hello World! 这是从java返回 ” 字符串。