flex.messaging.services.RemotingService를 이용해서 서비스를 구현 테스트를 한다.
----------------------------------------------------------------------------------------------
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="member">
<properties>
<source>flex.member.MemberService</source>
</properties>
</destination>
</service>
----------------------------------------------------------------------------------------------
web.xml
----------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>BlazeDS</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-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-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>
==========================================================================================
이클립스에서 설정을 해주고 나서 끝나면
Flex빌더로 가서
mxml파을을 생성한다.
현재 Flex2는 설치시 데이터서비스를 채크하지않아서 Flex2는 테스트 하지못했고
Flex3에서만 테스트 했음.
==========================================================================================
----------------------------------------------------------------------------------------------
RemoteObject.mxml
----------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.remoting.RemoteObject;
import mx.controls.Alert;
private var startTime:Number;
private function resultHandler(event:ResultEvent):void{
dg.dataProvider = event.result;
}
private function faultHandler(event:FaultEvent):void{
mx.controls.Alert.show(event.fault.message);
}
private function retrieve():void {
var srv:mx.rpc.remoting.RemoteObject = new RemoteObject();
srv.destination = "member";
startTime = new Date().time;
srv.getElements();
srv.addEventListener("result",resultHandler);
srv.addEventListener("fault",faultHandler);
}
private function logResult():void {
if (startTime > 0) {
log.text = "" + (new Date().time - startTime) + " milliseconds";
}
}
]]>
</mx:Script>
<mx:Panel title="RemoteObject" width="100%" height="100%">
<mx:DataGrid id="dg" width="100%" height="100%" updateComplete="logResult()"/>
<mx:ControlBar>
<mx:Button label="Data" click="retrieve()"/>
<mx:Label id="log"/>
</mx:ControlBar>
</mx:Panel>
</mx:Application>