1. 程式人生 > >Flex 與 Java 資料互動一種方式(Blazeds)

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資源中