Flex 与 Java 数据交互一种方式(Blazeds)

来源:互联网 发布:网络与新媒体工资待遇 编辑:程序博客网 时间:2024/05/18 02:35

项目中用到前台Flex展示,后台Java查库操作。这里记录一下交互操作。

1下载Blazeds

Flex与Java交互有多种方式,常用的为Blazeds。

http://sourceforge.net/adobe/blazeds/wiki/download%20blazeds%204/

下载Blazeds,blazeds.war中有需要的配置文件和jar包。都需要放到WEB-INF下。


2服务器端程序编写

Flex端与服务器程序交互,利用RemoteObject来调用服务器端程序。


public boolean blazedsService(String str){return str.equals("a");}


配置WEb_INF/flex 下 remoting-config.xml

    <destination id="blazedsTestjava"><properties><source>com.li.blazeds.BlazedsService</source></properties></destination>



3Flex端调用RemoteObject

Flash Builder新增项目,

RemoteObject组件调用远程java对象,


<pre name="code" class="html"><?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"   creationComplete="init()"><fx:Declarations><!-- 将非可视元素(例如服务、值对象)放在此处 --><s:RemoteObject id="blazedsTest" destination="blazedsTestjava"endpoint="http://localhost:8080/BlazedsTest/messagebroker/amf"result="success(event)" fault="fail(event)" /></fx:Declarations><fx:Script><![CDATA[import mx.controls.Alert;import mx.rpc.events.FaultEvent;import mx.rpc.events.ResultEvent;public function init():void{blazedsTest.blazedsService("a");}public function success(event:ResultEvent):void{Alert.show((Boolean(event.result)).toString());}public function fail(event:FaultEvent):void{Alert.show(event.message.toString());}]]></fx:Script></s:Application>


4发布

首先web程序部署到tomcat下,然后在Flash Builder中直接运行mxml程序。结果如下,证明可以数据交互。



5总结

在RemoteObject中,endpoint中执行web程序中的地址

endpoint="http://localhost:8080/BlazedsTest/messagebroker/amf"

在web.xml中配置了

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

配置了该请求的响应,flex.messaging.MessageBrokerServlet来处理该请求。猜想是反射调用类和方法。


上述只是介绍了基本的Flex和java交互,而对于将Flex程序部署到web应用上的数据交互还没有介绍。

相应的代码文件在我的csdn资源中

0 0