Java App Serverに展開されたRESTLET RIAPプロトコル
-
25-10-2019 - |
質問
私は展開しました レストレット Jetty Javaアプリケーションサーバーへのサービスを使用します サーバーサーバー 機構。一部のサービスはGWTフロントエンドから呼び出されますが、サーバーロジックから直接呼び出す必要があります。
RESTLET RIAPシステム これには完璧なようですが、ここでこれをどのように使用するかはわかりません。どういうわけか、レストレットコンポーネントのコンテキストを抑える必要があるようです。
私はそれを示した1つの投稿を見つけました riapserverhelper これには役立ちます。しかし、これをどのように使用するかについてのドキュメントは見つかりませんでした。どんな例でも役立ちます。
解決
Riapserverhelperクラスは、サーバーコネクタの実装です。明示的に使用する必要はありません。
RIAPを使用するには、アプリケーションのすべてのエンティティを通常どおりに実装する必要があります(サーバーリソース、アプリケーション...)。違いは、コンポーネント仮想ホストにアプリケーションを添付するときにもたらされます。 RIAPを介してアクセスする必要があるリソースも、次のように内部ルーターに接続する必要があります。
Component component = new Component();
component.getServers().add(Protocol.HTTP, 8182);
MyApplication app = new MyApplication();
component.getDefaultHost().attachDefault(app);
component.getInternalRouter().attachDefault(app);
コンポーネントにRIAPプロトコルを指定する必要はないことに注意してください。デフォルトでサポートされています。
RIAPを介してアプリケーションのリソースへのアクセスは、他のプロトコルと同様に、Restletクライアントサポートを使用できるため、簡単です。
Request request = new Request(Method.GET, "riap://component/ping");
Response response = getContext().getClientDispatcher().handle(request);
Representation repr = response.getEntity();
また
ClientResource cr = new ClientResource("riap://component/ping");
Representation repr = cr.get();
詳細については、ページをご覧ください。 http://wiki.restlet.org/docs_1.1/13-restlet/27-restlet/48-restlet/86-restlet/45-restlet.html.
あなたの質問に答えることを願っています。ティエリー