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.

War es 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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top