Flex - Servicios RPC
Flex proporciona servicios RPC para proporcionar datos del lado del servidor al lado del cliente. Flex proporciona una buena cantidad de control sobre los datos del lado del servidor.
Utilizando los servicios Flex RPC, podemos definir las acciones del usuario que se ejecutarán en el lado del servidor.
Flex RPC Sservices se puede integrar con cualquier tecnología del lado del servidor.
Uno de los servicios Flex RPC proporciona soporte incorporado para que los datos binarios comprimidos se transfieran por cable y es bastante rápido.
Flex proporciona los siguientes tres tipos de servicios RPC
No Señor | Servicio y descripción de RPC |
---|---|
1 | HttpService La etiqueta <mx: HTTPService> se utiliza para representar un objeto HTTPService en un archivo MXML. Cuando realiza una llamada al método send () del objeto HTTPService, realiza una solicitud HTTP a la URL especificada y se devuelve una respuesta HTTP. También puede usar los métodos HTTP HEAD, OPTIONS, TRACE y DELETE. |
2 | WebService <Mx: WebService> se utiliza para obtener acceso a las operaciones de los servicios web compatibles con SOAP. |
3 | RemoteObject La etiqueta <mx: RemoteObject> se utiliza para representar un objeto HTTPService en un archivo MXML. Esta etiqueta le da acceso a los métodos de los objetos Java que utilizan la codificación Action Message Format (AMF). |
Vamos a discutir el servicio HTTP en detalle. Usaremos un archivo fuente XML ubicado en el servidor y accederemos a él en el lado del cliente a través del servicio 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>
Declaración de servicio HTTPS
Ahora declare un HTTPService y páselo en la URL del archivo anterior
<fx:Declarations>
<mx:HTTPService id = "itemRequest"
url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>
Llamada RPC
Realice una llamada al método itemRequest.send () y vincule los valores del objeto lastResult del servicio 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>
Ejemplo de llamada de servicio RPC
Ahora, sigamos los pasos para probar los servicios RPC en una aplicación Flex:
Paso | Descripción |
---|---|
1 | Cree un proyecto con un nombre HelloWorld en un paquete com.tutorialspoint.client como se explica en el capítulo Flex - Crear aplicación . |
2 | Modifique HelloWorld.mxml como se explica a continuación. Mantenga el resto de los archivos sin cambios. |
3 | Compile y ejecute la aplicación para asegurarse de que la lógica empresarial funcione según los requisitos. |
A continuación se muestra el contenido del archivo mxml modificado 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 vez que esté listo con todos los cambios realizados, compilemos y ejecutemos la aplicación en modo normal como hicimos en el capítulo Flex - Crear aplicación . Si todo está bien con su aplicación, producirá el siguiente resultado: [ ]