10

タペストリー プロジェクトに REST を追加したいので、その実装方法を知る必要があります。

より良い方法は何ですか?

どうも。

[編集、回答からコピー:]タペストリー アプリケーションに GET、PUT、POST、および DELETE サービスを追加する必要があります。Tapestry には RESTful url があるようですが、JAX-RS とアノテーションはどうですか?

4

2 に答える 2

11

Restlet APIまたはサーブレットとして実行できるその他の JAX-RS 実装を使用できます。

Web サービスを Tapestry とうまく共存させるには、Tapestry アプリケーション モジュールで構成する必要があることが 1 つあります。

/**
 * Keep Tapestry from processing requests to the web service path.
 * 
 * @param configuration {@link Configuration}
 */
public static void contributeIgnoredPathsFilter(
        final Configuration<String> configuration) {
    configuration.add("/ws/.*");
}

このスニペットは、Tapestry フィルターに、Web サービスが配置されている /ws/ パスへの要求を処理しないように指示します。

次のスニペットは、Tapestry と Restlet サーブレットを使用した場合の web.xml のおおよその外観を示しています。

<filter>
    <filter-name>app</filter-name>
    <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>app</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<!-- Restlet adapter -->
<servlet>
    <servlet-name>WebService</servlet-name>
    <servlet-class>
        com.noelios.restlet.ext.spring.SpringServerServlet
    </servlet-class>

    ...
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>WebService</servlet-name>
    <!-- This path must also be set in AppModule#contributeIgnoredPathsFilter,
        otherwise Tapestry, being a request filter, will try to handle 
        requests to this path. -->
    <url-pattern>/ws/*</url-pattern>
</servlet-mapping>

それはあなたが始めるのに役立つはずです。

于 2010-05-06T10:10:10.400 に答える
9

REST Web サービスを Tapestry プロジェクトに統合したい場合、Tapestry の RESTful URL はおそらく十分ではありません。

この Tynamo モジュールを介して、 RESTEasyを Tapestryに統合することができます。RESYEasy は JAX-RS 互換です。

Tapestry で RESTEasy を使用したことはありませんが、Spring 2.5 で使用しましたが、非常にうまく機能しました。

于 2010-05-16T16:17:20.307 に答える