Flex - RPC-Dienste
Flex bietet RPC-Dienste, um serverseitige Daten für die Clientseite bereitzustellen. Flex bietet eine angemessene Kontrolle über serverseitige Daten.
Mithilfe von Flex RPC-Diensten können wir Benutzeraktionen definieren, die auf der Serverseite ausgeführt werden sollen.
Flex RPC Sservices können in alle serverseitigen Technologien integriert werden.
Einer der Flex RPC-Dienste bietet integrierte Unterstützung für die Übertragung komprimierter Binärdaten über das Kabel und ist recht schnell.
Flex bietet die folgenden drei Arten von RPC-Diensten
Sr.Nr. | RPC Service & Beschreibung |
---|---|
1 | HttpService Das Tag <mx: HTTPService> wird verwendet, um ein HTTPService-Objekt in einer MXML-Datei darzustellen. Wenn Sie die send () -Methode des HTTPService-Objekts aufrufen, wird eine HTTP-Anforderung an die angegebene URL gesendet und eine HTTP-Antwort zurückgegeben. Sie können auch die Methoden HTTP HEAD, OPTIONS, TRACE und DELETE verwenden. |
2 | WebService Der <mx: WebService> wird verwendet, um Zugriff auf die Vorgänge von SOAP-kompatiblen Webdiensten zu erhalten. |
3 | RemoteObject Das <mx: RemoteObject> -Tag wird verwendet, um ein HTTPService-Objekt in einer MXML-Datei darzustellen. Mit diesem Tag können Sie mithilfe der AMF-Codierung (Action Message Format) auf die Methoden von Java-Objekten zugreifen. |
Wir werden den HTTP-Dienst im Detail besprechen. Wir verwenden eine XML-Quelldatei, die auf dem Server abgelegt ist, und greifen auf der Clientseite über den HTTP-Dienst darauf zu.
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-Erklärung
Deklarieren Sie nun einen HTTPService und übergeben Sie die URL der obigen Datei
<fx:Declarations>
<mx:HTTPService id = "itemRequest"
url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>
RPC-Aufruf
Rufen Sie die Methode itemRequest.send () auf und binden Sie Werte vom lastResult-Objekt des itemRequest-Webservices an die Flex UI-Komponente.
...
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>
Beispiel für einen RPC-Serviceabruf
Befolgen Sie nun die Schritte zum Testen von RPC-Diensten in einer Flex-Anwendung.
Schritt | Beschreibung |
---|---|
1 | Erstellen Sie ein Projekt mit dem Namen HelloWorld unter einem Paket com.tutorialspoint.client, wie im Kapitel Flex - Anwendung erstellen erläutert . |
2 | Ändern Sie HelloWorld.mxml wie unten erläutert. Lassen Sie den Rest der Dateien unverändert. |
3 | Kompilieren Sie die Anwendung und führen Sie sie aus, um sicherzustellen, dass die Geschäftslogik den Anforderungen entspricht. |
Es folgt der Inhalt der geänderten mxml-Datei 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>
Wenn Sie mit allen vorgenommenen Änderungen fertig sind, lassen Sie uns die Anwendung im normalen Modus kompilieren und ausführen, wie wir es im Kapitel Flex - Anwendung erstellen getan haben . Wenn mit Ihrer Anwendung alles in Ordnung ist, führt dies zu folgendem Ergebnis: [ Online testen ]