您的位置:首页 > 编程语言 > Java开发

[整理]使用blazeds实现flex和java交互

2010-07-28 16:19 731 查看
好久没研究flex 和 java 交互了,有个哥们问才拿起来,很模糊了所以决定记下来。废话少说,进正题。。。

flex 和 java 交互可以使用 LCDS 和 BlazeDS 这2个框架,LCDS 就不说了,因为我也不会。

说说使用blazeds实现flex和java后台交互吧。

1.首先下载所需jar包就不多说了。

http://opensource.adobe.com/wiki/display/blazeds/BlazeDS

我下载的是 blazeds-bin-3.2.0.3978.zip,下好以后解压备用。

2.创建javaWeb项目。

使用MyEclipse创建Java Web项目,这里我创建的项目名称是HelloWorld-blazeds。然后使用blazeds.war解压后的WEB-INF文件夹覆盖对应的文件夹。如下图:



3.编写服务的bean并发布之。

在src下新建要提供给flex前台使用的bean。代码如下:

package com.aisono.service;

public class MyService {
public String sayHello(String name) {
System.out.println(name);
return "Hello," + name;
}
}


修改WEB-INF/flex/remoting-config.xml如下:

<?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>

<!-- 这里配置要发布的服务bean -->
<destination id="myService">
<properties>
<source>com.aisono.service.MyService</source>
</properties>
</destination>

</service>


发布程序到tomcat并启动,至此java后台搞定了。。。

4.创建flex前台调用javaBean服务

使用FlashBuilder4创建flex web程序如图:



配置J2EE服务信息:



编写flex前台代码调用javaBean服务,代码如下:

<?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[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;

protected function btn_clickHandler(event:MouseEvent):void
{
var iname:String=txtName.text;
ro.sayHello(iname);
ro.addEventListener(FaultEvent.FAULT,doError);
}

private function doError(event:FaultEvent):void{
Alert.show(event.message.toString(),"dd");
}

]]-->
</fx:Script>

<fx:Declarations>
<s:RemoteObject id="ro" destination="myService"/>
</fx:Declarations>

<mx:Button x="361" y="141"
label="sayHello" id="btn"
click="btn_clickHandler(event)"/>

<mx:TextInput x="148" y="140"
id="txtName"/>
<mx:Label x="73" y="142" text="请输入姓名"/>

<mx:Label text="{ro.sayHello.lastResult}"
x="76" y="179"
width="448" height="71"
id="lblMsg"
color="#0C28A4"
fontSize="20" fontWeight="bold" />

</s:Application>


运行结果如图:



至此,一个简单的helloworld就完成了!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: