Flex与Java之间的AMF通信-BlazeDS框架的使用

关于Flex与后台之间的通信,我想大家已经了解很多了,关于BlazeDS框架的使用,介绍还很少,并且还很不全面,今天我们一起来研究一下如何使用BlazeDS框架让Flex与Java进行通信。

1.0.下载BlazeDS框架,下载集成Tomcat服务器的版本http://flexorg.wip3.adobe.com/blazeds/4.x/milestone/14931/blazeds-turnkey-4.0.0.14931.zip 或者单独的版本http://flexorg.wip3.adobe.com/blazeds/4.x/milestone/14931/blazeds-bin-4.0.0.14931.zip 。如果你不熟悉Tomcat服务器,建议下载集成版的,下面我也是以此集成版为例进行说明。(更多版本下载请访问:http://opensource.adobe.com/wiki/display/blazeds/download+blazeds+4

1.1.将下载的BlazeDS框架解压到本地磁盘,我是解压到C:/blazeds4.0.0.14931目录下。

1.2.进入C:/blazeds4.0.0.14931/sampledb目录下,双击startdb.bat文件启动之。

1.3.进入C:/blazeds4.0.0.14931/tomcat/bin目录下,双击startup.bat文件启动之。(此步可能会报 错,主要原因是你的JAVA_HOME或者JRE_HOME环境变量未设置,关于环境变量的设置,如果你不会,请用Baidu或者Google搜索一下)

1.4.如果没问题的话,打开浏览器,在地址栏中输入http://localhost:8400,回车,如果出现以下界面,说明你的BlazeDS已经成功运行了。

2.0.打开jee eclipse开发环境,如果没有,可到http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR2/eclipse-jee-galileo-SR2-win32.zip 下载。

2.1.将workspace切换到C:/blazeds4.0.0.14931/tomcat/webapps。

2.2.到C:/blazeds4.0.0.14931/tomcat/webapps目录下,将blazeds文件夹复制一个副本,将此副本改名为myapp。

2.3.回到jee环境中,新建一个Dynamic Web Project,如下图所示:

2.4.单击“Next”,进入如下面板,将Project name命为myappp:

2.5.单击“Next”进入如下面板,这里我们将修改Source folders on build path为WEB-INF/src,修改Default output folder为WEB-INF/classes,如下图所示:

2.6.单击”Next”进入如下面板,我们修改Content directory为WEB-INF,如下图所示:

2.7.单击“Finish”创建我们的工程。

2.8.将web.xml内容修改为如下所示:

<?xml
 version
="1.0"
 encoding
="UTF-8"
?>


 
<web-app id ="WebApp_ID" >
 
<display-name> myapp</display-name>
<description> BlazeDS Application</description>
 
<!-- 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>
<servlet-name> RDSDispatchServlet</servlet-name>
<display-name> RDSDispatchServlet</display-name>
<servlet-class> flex.rds.server.servlet.FrontEndServlet</servlet-class>
<init-param>
<param-name> useAppserverSecurity</param-name>
<param-value> false</param-value>
</init-param>
<load-on-startup> 10</load-on-startup>
</servlet>
 
<servlet-mapping id ="RDS_DISPATCH_MAPPING" >
<servlet-name> RDSDispatchServlet</servlet-name>
<url-pattern> /CFIDE/main/ide.cfm</url-pattern>
</servlet-mapping>
 
<servlet-mapping>
<servlet-name> MessageBrokerServlet</servlet-name>
<url-pattern> /messagebroker/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file> index.html</welcome-file>
<welcome-file> index.htm</welcome-file>
<welcome-file> index.jsp</welcome-file>
<welcome-file> default.html</welcome-file>
<welcome-file> default.htm</welcome-file>
<welcome-file> default.jsp</welcome-file>
</welcome-file-list>
 
<!-- for WebSphere deployment, please uncomment -->
<!--
<resource-ref>
<description>Flex Messaging WorkManager</description>
<res-ref-name>wm/MessagingWorkManager</res-ref-name>
<res-type>com.ibm.websphere.asynchbeans.WorkManager</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
-->
 
</web-app>

2.9.将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>
 
<destination id ="hello" >
<properties>
<source> com.plter.Hello</source>
</properties>
</destination>
</service>

2.10.建立com.plter.Hello类,如下图所示:

2.11.在Hello.java中输入以下代码:

package
 com.plter
;

 
public class Hello {
public String helloClient( String name) {
return "Hello " + name;
}
}

2.12.重新启动Tomcat服务器,请参考1.2和1.3。

3.0.打开FlashBuilder4,创建一个名为HelloServer的Web工程,服务器技术选择J2ee的BlazeDS,如下图所示:

3.1.单击“下一步”进入配置服务器面板,在根文件夹中输入C:/blazeds4.0.0.14931/tomcat/webapps /myapp,在根URL中输入http://localhost:8400/myapp,上下文根目录中输入myapp,如下图所示:

3.2.单击完成创建Flex项目。

3.3.选择菜单 “数据”->“连接BlazeDS…”将打开身份验证面板,我们选择不需要密码,如下图所示:

3.4.单击“确定”将进入导入服务面板,我们选择hello,如下图所示:

3.5.单击“完成”创建此服务。

3.6.回到HelloServer.mxml文件的设计面板中,将一个按钮拖入,并在此按钮的属性面板中的事件选择里选择生成服务调用,如下图所示:

3.7.在生成服务调用的面板中,我们选择hello的helloClient方法,如下图所示:

3.8.单击“确定”则可自动回到“源代码”面板中,此时我们将HelloServer.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" xmlns: services="services.*" >
< fx: Script>
<! [ CDATA[
import mx. controls. Alert;
import mx. rpc. events. ResultEvent;
 
protected function button_clickHandler( event: MouseEvent ) : void
{
helloClientResult. token = hello. helloClient( "Jaja" ) ;
}
 
protected function helloClientResult_resultHandler( event: ResultEvent) : void
{
trace ( event. result) ;
}
 
] ] >
</ fx: Script>
< fx: Declarations>
< s: CallResponder id="helloClientResult" result="helloClientResult_resultHandler(event)" />
< services: Hello id="hello" fault="Alert.show(event.fault.faultString + '/n ' + event.fault.faultDetail)" showBusyCursor="true" />
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</ fx: Declarations>
< s: Button x ="79" y ="98" label="按钮" id="button" click ="button_clickHandler(event)" />
</ s: Application>

3.9.按F11调试此程序,单击一下按钮,如果成功,将会在输出面板中呈现Java服务器的返回结果,如下图所示:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值