Flex-RPC 서비스
Flex는 클라이언트 측에 서버 측 데이터를 제공하는 RPC 서비스를 제공합니다. Flex는 서버 측 데이터에 대해 상당한 양의 제어를 제공합니다.
Flex RPC 서비스를 사용하여 서버 측에서 실행할 사용자 작업을 정의 할 수 있습니다.
Flex RPC Sservice는 모든 서버 측 기술과 통합 될 수 있습니다.
Flex RPC 서비스 중 하나는 압축 된 바이너리 데이터를 유선을 통해 전송할 수 있도록 내장 된 지원을 제공하며 매우 빠릅니다.
Flex는 다음 세 가지 유형의 RPC 서비스를 제공합니다.
Sr. 아니요 | RPC 서비스 및 설명 |
---|---|
1 | HttpService <mx : HTTPService> 태그는 MXML 파일에서 HTTPService 객체를 나타내는 데 사용됩니다. HTTPService 객체의 send () 메서드를 호출하면 지정된 URL로 HTTP 요청을하고 HTTP 응답이 반환되며 HTTP HEAD, OPTIONS, TRACE, DELETE 메서드를 사용할 수도 있습니다. |
2 | WebService <mx : WebService>는 SOAP 호환 웹 서비스의 작업에 액세스하는 데 사용됩니다. |
삼 | RemoteObject <mx : RemoteObject> 태그는 MXML 파일에서 HTTPService 개체를 나타내는 데 사용됩니다. 이 태그를 사용하면 AMF (Action Message Format) 인코딩을 사용하여 Java 개체의 메서드에 액세스 할 수 있습니다. |
HTTP 서비스에 대해 자세히 설명하겠습니다. 서버에있는 XML 소스 파일을 사용하고 HTTP 서비스를 통해 클라이언트 측에서 액세스합니다.
Items.xml
<items>
<item name = "Book" description = "History of France"></item>
<item name = "Pen" description = "Parker Pen"></item>
<item name = "Pencil" description = "Stationary"></item>
<items>
HTTPService 선언
이제 HTTPService를 선언하고 위 파일의 URL을 전달합니다.
<fx:Declarations>
<mx:HTTPService id = "itemRequest"
url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>
RPC 호출
itemRequest.send () 메서드를 호출하고 itemRequest 웹 서비스의 lastResult 객체에서 Flex UI 구성 요소에 값을 바인딩합니다.
...
itemRequest.send();
...
<mx:DataGrid id = "dgItems" height = "80%" width = "75%"
dataProvider = "{itemRequest.lastResult.items.item}">
<mx:columns>
<mx:DataGridColumn headerText = "Name" dataField = "name" />
<mx:DataGridColumn headerText = "Description" dataField = "description" />
</mx:columns>
</mx:DataGrid>
RPC 서비스 호출 예
이제 Flex 애플리케이션에서 RPC 서비스를 테스트하는 단계를 따르십시오.
단계 | 기술 |
---|---|
1 | Flex-Create Application 장에 설명 된대로 com.tutorialspoint.client 패키지 아래에 HelloWorld 라는 이름으로 프로젝트를 만듭니다 . |
2 | 아래 설명대로 HelloWorld.mxml 을 수정 합니다. 나머지 파일은 변경하지 마십시오. |
삼 | 애플리케이션을 컴파일하고 실행하여 비즈니스 로직이 요구 사항에 따라 작동하는지 확인합니다. |
다음은 수정 된 mxml 파일의 내용입니다. src/com.tutorialspoint/HelloWorld.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"
minWidth = "500" minHeight = "500" creationComplete = "init(event)">
<fx:Style source = "/com/tutorialspoint/client/Style.css" />
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
protected function init(event:FlexEvent):void {
itemRequest.send();
}
]]>
</fx:Script>
<fx:Declarations>
<mx:HTTPService id = "itemRequest"
url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>
<s:BorderContainer width = "630" height = "480" id = "mainContainer"
styleName = "container">
<s:VGroup width = "100%" height = "100%" gap = "10"
horizontalAlign = "center" verticalAlign = "middle">
<s:Label id = "lblHeader" text = "RPC Service Demonstration"
fontSize = "40" color = "0x777777" styleName = "heading" />
<s:Panel id = "parentPanel" title = "Using RPC Services"
width = "500" height = "200" >
<s:layout>
<s:VerticalLayout gap = "10"
verticalAlign = "middle" horizontalAlign = "center" />
</s:layout>
<mx:DataGrid id = "dgItems" height = "80%" width = "75%"
dataProvider = "{itemRequest.lastResult.items.item}">
<mx:columns>
<mx:DataGridColumn headerText = "Name" dataField = "name" />
<mx:DataGridColumn headerText = "Description"
dataField = "description" />
</mx:columns>
</mx:DataGrid>
</s:Panel>
</s:VGroup>
</s:BorderContainer>
</s:Application>
모든 변경이 완료되면 Flex-Create Application 장 에서했던 것처럼 일반 모드에서 응용 프로그램을 컴파일하고 실행하겠습니다 . 응용 프로그램에 문제가 없으면 다음과 같은 결과가 나타납니다. [ 온라인 시도 ]