mit GWT RPC-Mechanismus mit meinem maßgeschneiderten Servlets
-
07-07-2019 - |
Frage
Im Moment habe ich eine GWT-Anwendung, die die RequestBuilde
verwendet, um
Senden von Nachrichten an ein Servlet Ich habe (POST
und GET
verwenden), und mein Servlet
(In doPost
und doGet
) „Pausen“ die Anforderung (dies geschieht durch die Verwendung
Servlets 3.0 Spezifikation) und fügt sie in eine Warteschlange.
Zusätzlich habe ich eine
Dämon-Thread, der im Hintergrund läuft und „spielt“ die Anforderung
wenn es neue Daten.
Dies funktioniert gut für mich abgesehen von der Tatsache, dass ich gerade bin das Senden
Saiten für jetzt und ich möchte den RPC-Mechanismus nutzen, senden
Objekte.
Meine Frage ist:
Wenn ich meine myServiceImpl
Klasse zu erstellen, die sich
RemoteServiceServlet
wie soll ich die doPost
und doGet
wenn überhaupt umgehen?
Ich brauche meine Anfrage zu pausieren die asynchrone Unterstützung zu nutzen, wo soll dies erreicht werden? Ich dachte, vielleicht this.getThreadLocalRequest()
Methode in meinem RPC-Methode in myServiceImpl
Klasse zu nennen, aber ich bin nicht sicher, wie klug das sein wird.
Ich bin nicht
sicher, dass ich auch verstehen, wie GWT den Anruf von der Client-Seite behandelt
dieser asynchronen Schnittstelle.
Ist es durch Zufall nennen sie den doGet
zum Beispiel des Servlets und
stellt sicher, dass sie die erforderliche RPC-Methode aufruft?
Es tut mir leid, wenn ich ein Durcheinander von Dingen gemacht, es ist nur, dass ich nicht mehr finden kann
detaillierte technische Informationen wie genau, wie dieses RPC-Geschäft funktioniert.
Freuen uns über jede Kreditvergabe Hand
Ittai
Lösung 2
ich glaube, das Hauptmissverständnis Ich hatte zu der Zeit wurde auf die Tatsache, dass GWT RPC auf dem Servlet-Mechanismus aufbaut (intern) und so versuchen, diesen Mechanismus mit asynchronen Servlets zu verwenden war, zu der Zeit, nicht möglich, da GWT RPC war gebaut auf Servlets 2.5 (auch hier zu der Zeit).
Andere Tipps
RPC Um zu verstehen, über POST und GET vergessen es funktioniert anders (dh aus einer Programmiersprache Perspektive. Intern hat es sie benutzen, aber Sie nicht sehen oder verstehen müssen, es sei denn, Sie etwas Exotisches tun wollen). Ein guter Ausgangspunkt ist auf RPC ist die GWT docs: http://code.google .com / webtoolkit / tutorials / 1.6 / RPC.html
Um Ihnen eine Zusammenfassung. Bei der Verwendung von RPC-Servlets myServiceImpl
die Methoden einer Schnittstelle namens myService
implementieren muss, neben den RemoveServiceServlet
erstreckt. Die Methoden erhalten als Argumente die Daten, die Sie an den Server gesendet werden sollen.
Neben dem myService
Schnittstelle benötigen Sie eine myServiceAsync
Schnittstelle (beide Schnittstelle des sollten in einem Client subpackage sein) zu erstellen. Diese myServiceAsync
inteface sollten die gleichen Methoden enthalten, wie die myService
Schnittstelle außer jede Methode void
zurückkehrt und hat ein zusätzliches letztes Argument AsyncCallback callback
.
Sie Client müssen Sie Instrument GWT die RPC über GWT.create (siehe Dokumentation für die Details zu erzeugen.
RPC verwenden zu können, rufen Sie die Methoden auf der myServiceAsync
Schnittstelle in Ihrem Client-Code und GWT kümmert es an das Servlet zu senden. Das Servlet wird dann rufen Sie die Anpassungsverfahren mit den Argumenten, die Sie auf den Client übergeben. Dies wird asynchron erfolgen. So kehrt der Client direkt aus dem Aufruf.
Wenn der Server sendet das Ergebnis zurück, um den Rückruf Sie bestanden myServiceAsync
verwendet wird oder OnError
oder OnSuccess
aufgerufen. OnError
, wenn das Verfahren auf der Serverseite einen Fehler, sonst OnSuccess
wirft. Die OnSuccess
wird als Argument den Rückgabewert von dem, was Sie von Ihrem Servlet implementiert in der Methode zurückgegeben wird.