Flex - Servizi RPC

Flex fornisce servizi RPC per fornire dati lato server al lato client. Flex fornisce una discreta quantità di controllo sui dati lato server.

  • Utilizzando i servizi Flex RPC, possiamo definire le azioni dell'utente da eseguire sul lato server.

  • Flex RPC Sservices può essere integrato con qualsiasi tecnologia lato server.

  • Uno dei servizi Flex RPC fornisce il supporto integrato per i dati binari compressi da trasferire in rete ed è piuttosto veloce.

Flex fornisce i seguenti tre tipi di servizi RPC

Suor n Servizio e descrizione RPC
1

HttpService

Il tag <mx: HTTPService> viene utilizzato per rappresentare un oggetto HTTPService in un file MXML. Quando si effettua una chiamata al metodo send () dell'oggetto HTTPService, viene eseguita una richiesta HTTP all'URL specificato e viene restituita una risposta HTTP. È inoltre possibile utilizzare i metodi HTTP HEAD, OPTIONS, TRACE e DELETE.

2

WebService

Il <mx: WebService> viene utilizzato per ottenere l'accesso alle operazioni dei servizi Web conformi a SOAP.

3

RemoteObject

Il tag <mx: RemoteObject> viene utilizzato per rappresentare un oggetto HTTPService in un file MXML. Questo tag consente di accedere ai metodi degli oggetti Java utilizzando la codifica Action Message Format (AMF).

Discuteremo in dettaglio il servizio HTTP. Useremo un file sorgente XML posizionato sul server e vi accediamo dal lato client tramite il servizio 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>

Dichiarazione HTTPService

Ora dichiara un servizio HTTPS e passagli l'URL del file sopra

<fx:Declarations>
   <mx:HTTPService id = "itemRequest" 
   url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>

Chiamata RPC

Effettua una chiamata al metodo itemRequest.send () e associa i valori dall'oggetto lastResult del servizio web itemRequest al componente 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>

Esempio di chiamata di servizio RPC

Ora, seguiamo i passaggi per testare i servizi RPC in un'applicazione Flex -

Passo Descrizione
1 Crea un progetto con un nome HelloWorld sotto un pacchetto com.tutorialspoint.client come spiegato nel capitolo Flex - Crea applicazione .
2 Modifica HelloWorld.mxml come spiegato di seguito. Mantieni il resto dei file invariato.
3 Compilare ed eseguire l'applicazione per assicurarsi che la logica aziendale funzioni secondo i requisiti.

Di seguito è riportato il contenuto del file mxml modificato 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>

Una volta che sei pronto con tutte le modifiche apportate, compiliamo ed eseguiamo l'applicazione in modalità normale come abbiamo fatto nel capitolo Flex - Crea applicazione . Se tutto va bene con la tua applicazione, produrrà il seguente risultato: [ Provalo online ]