RESTLET RIAP -Protokoll, das auf dem Java App Server bereitgestellt wird
-
25-10-2019 - |
Frage
Ich habe unsere bereitgestellt Restlet Services für einen Jetty -Java -Anwendungsserver, der das verwendet ServerServlet Mechanismus. Einige der Dienste werden vom GWT-Front-End aufgerufen, aber ich müsste sie auch direkt von unserer Serverlogik anrufen.
Das Restlet RIAP -System Es scheint perfekt dafür, aber ich bin mir nicht sicher, wie ich das hier verwenden soll. Es scheint, dass ich den Kontext der Restlet -Komponente irgendwie abhalten muss.
Ich fand einen Beitrag, der darauf hinwies, dass die Riapserverhelper wäre dafür nützlich. Aber ich fand keine Dokumentation darüber, wie man dies verwendet. Alle Beispiele wären hilfreich.
Lösung
Die RIAPERVERHELPER -Klasse ist die Implementierung des Server -Connectors. Sie müssen es nicht explizit verwenden.
Um RIAP zu verwenden, müssen Sie alle Entitäten Ihrer Anwendung wie gewohnt implementieren (Serverressource, Anwendung ...). Der Unterschied kommt beim Anbringen von Anwendungen an die virtuellen Komponenten -Hosts. Ressourcen, auf die über Riap zugegriffen werden muss, müssen wie folgt auch an den internen Router anhängen:
Component component = new Component();
component.getServers().add(Protocol.HTTP, 8182);
MyApplication app = new MyApplication();
component.getDefaultHost().attachDefault(app);
component.getInternalRouter().attachDefault(app);
Beachten Sie, dass Sie das RIAP -Protokoll nicht an die Komponente angeben müssen. Es wird standardmäßig unterstützt.
Der Zugriff auf Ressourcen der Anwendung über RIAP ist dann einfach, da Sie den Restlet -Client -Support wie bei anderen Protokollen verwenden können:
Request request = new Request(Method.GET, "riap://component/ping");
Response response = getContext().getClientDispatcher().handle(request);
Representation repr = response.getEntity();
oder
ClientResource cr = new ClientResource("riap://component/ping");
Representation repr = cr.get();
Für weitere Details können Sie sich die Seite ansehen http://wiki.restlet.org/docs_1.1/13-restlet/27-restlet/48-restlet/86-restlet/45-restlet.html.
Ich hoffe, das beantwortet Ihre Frage. Thierry