1

私はまだ REST ソリューションについて読んでいますが、RESTlet を使用して Web サービスを実装し、Jackson を使用して JSON として応答を提供することにしました。

それ以前は Axis2 を使用していましたが、そのパフォーマンスに恐怖を感じていました。単純な要求がクライアントに返されるまでに数百ミリ秒かかっていたのに、クライアントとサーバーの両方が同じマシン上にあったのです! (ベンチマークをやり直して、以前よりもうまくやって、今度は直接呼び出し、Axis2、および RESTlet+Jackson を比較します。)

RESTlet は多くのコンテナーで使用できることを知っており、Tomcat と RESTlet を統合するためのチュートリアルをいくつか見つけました。しかし、私が理解したように、RESTlet アプリを Tomcat に直接バインドすることを意図していました。

私の問題は、Axis2 を使用すると、非ブラウザー クライアントにサービスを提供する Axis2 WebService と共に、ブラウザー リクエストを処理して HTML ページにサービスを提供するサーブレットを開発する独自の Eclipse プロジェクトを作成できることです。この Eclipse プロジェクトは、すべてのコードと必要なすべての jar を保持する独自の war としてエクスポートされます。次に、それを Tomcat にデプロイし、独自のサーバーからすべてを機能させることができます。

例:

私はRESTletで同じことをしたい:

ご覧のとおり、適切な web.xml 構成を使用してこの war を作成する際に、Eclipse が「魔法」を実行する必要があります。Axis2 では機能しますが、RESTlet で行う方法がわかりません。

別の質問です。サーブレットが不要で、RESTlet WebService のみが必要な場合、数百のリクエストを同時に実行する 12 のクライアントに対して最も効率的なコンテナはどれでしょうか?

4

1 に答える 1

1

間違いなく実行できます:私は個人的にNetBeans / Mavenを使用する傾向があるため、最終的なxmlセットアップへのポインターのみを提供できますが...

私のweb.xmlには次のものが含まれています。

<servlet>
    <servlet-name>ServerServlet</servlet-name>
    <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
    <init-param>
        <param-name>org.restlet.application</param-name>
        <param-value>my.Application</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>ServerServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

Tomcatの場合、context.xml:

<Context path="/rootPath"></Context>

もちろん、必要に応じてこれらにデータソースとパラメータを追加できます。

残りのルーティングは、org.restlet.ApplicationからcreateInboundRoute()をオーバーライドすることにより、my.Applicationクラスに設定されたRestlet自体と、ServerResourceを拡張するマップされた(ルーティングされた)クラスのアノテーションによって処理されます。

于 2013-02-20T13:21:00.980 に答える