Flex - Serviços RPC
Flex fornece serviços RPC para fornecer dados do lado do servidor para o lado do cliente. O Flex fornece uma boa quantidade de controle sobre os dados do lado do servidor.
Usando serviços Flex RPC, podemos definir ações do usuário a serem executadas no lado do servidor.
Os serviços Flex RPC podem ser integrados a qualquer tecnologia do lado do servidor.
Um dos Flex RPC Service fornece suporte embutido para dados binários compactados a serem transferidos pela rede e é muito rápido.
Flex fornece os seguintes três tipos de serviços RPC
Sr. Não | Serviço RPC e descrição |
---|---|
1 | HttpService A tag <mx: HTTPService> é usada para representar um objeto HTTPService em um arquivo MXML. Quando você faz uma chamada para o método send () do objeto HTTPService, ele faz uma solicitação HTTP para o URL especificado e uma resposta HTTP é retornada. Você também pode usar os métodos HTTP HEAD, OPTIONS, TRACE e DELETE. |
2 | WebService O <mx: WebService> é usado para obter acesso às operações de serviços da web compatíveis com SOAP. |
3 | RemoteObject A tag <mx: RemoteObject> é usada para representar um objeto HTTPService em um arquivo MXML. Esta tag fornece acesso aos métodos de objetos Java usando a codificação Action Message Format (AMF). |
Vamos discutir o Serviço HTTP em detalhes. Usaremos um arquivo de origem XML colocado no servidor e acessá-lo no lado do cliente via serviço 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>
Declaração HTTPService
Agora declare um HTTPService e passe-o url do arquivo acima
<fx:Declarations>
<mx:HTTPService id = "itemRequest"
url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>
Chamada RPC
Faça uma chamada para o método itemRequest.send () e vincule os valores do objeto lastResult do serviço da web itemRequest ao componente UI do Flex.
...
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>
Exemplo de chamada de serviço RPC
Agora, vamos seguir as etapas para testar os serviços RPC em um aplicativo Flex -
Degrau | Descrição |
---|---|
1 | Crie um projeto com um nome HelloWorld em um pacote com.tutorialspoint.client conforme explicado no capítulo Flex - Criar aplicativo . |
2 | Modifique HelloWorld.mxml conforme explicado abaixo. Mantenha o resto dos arquivos inalterados. |
3 | Compile e execute o aplicativo para ter certeza de que a lógica de negócios está funcionando de acordo com os requisitos. |
A seguir está o conteúdo do arquivo 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>
Quando estiver pronto com todas as alterações feitas, vamos compilar e executar o aplicativo no modo normal como fizemos no capítulo Flex - Criar aplicativo . Se tudo estiver bem com sua aplicação, ele produzirá o seguinte resultado: [ ]