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 장 에서했던 것처럼 일반 모드에서 응용 프로그램을 컴파일하고 실행하겠습니다 . 응용 프로그램에 문제가 없으면 다음과 같은 결과가 나타납니다. [ 온라인 시도 ]