Flex 與 Java 資料互動一種方式(Blazeds)
專案中用到前臺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資源中