私はこのRestlet構造を持っています:
サーバーオブジェクトをインスタンス化します。
server = new Server(new Context(), config.getServerProtocol(), config
.getServerPort());
その後、Applicationを拡張する新しいMyAppクラスをインスタンス化します。
app = new org.myproject.restlet.server.MyApp(
config, server.getContext());
app.start();
そしてサーバーを起動します:
server.setNext(app);
server.start();
コンポーネントがありません。MyAppがルーターに配布してリクエストを処理します。この時点で誰かがコメントを持っているなら、それはありがたいです。Restlet 2.0.14 JSEを使用しており、桟橋のjarファイルをリンクしてhttpサーバーのように使用しています。私のサーバーは問題なく動作します。古典的なポーリングでajax呼び出しを行うjavascriptクライアントがあります。しかし、サーバーにロングポーリングを実装する必要があります(何らかの理由でストリームモードとプッシュモードを破棄します)。これを実装する方法について読んでいます。最初の方法(醜い方法)は次のようになります。-サーバーでスレッドをスリープ状態にし、サーバーに何かがある可能性があるときに再開します。この方法はスケーラブルではないため破棄されます(ここにそれに関する投稿があります)。-2番目の方法は、バージョン7のJetty継続APIを使用することです。このリンクでは桟橋の彗星APIを使用してリクエストを一時停止する方法はわかりますが、この別のリンクに記載されているように、レストレットの実装にどのように適用するかわかりません。
Continuation continuation = ContinuationSupport.getContinuation(request);
continuation.suspend();
ただし、getContinuationメソッドはServletRequestオブジェクトを受け取ります。しかし、私のリクエストはServletRequestではありません。RestletでServletRequestを変換または使用する方法を知っている人はいますか?おそらく私はサーバープログラミングのすべての概念を持っているわけではありません。