タペストリー プロジェクトに REST を追加したいので、その実装方法を知る必要があります。
より良い方法は何ですか?
どうも。
[編集、回答からコピー:]タペストリー アプリケーションに GET、PUT、POST、および DELETE サービスを追加する必要があります。Tapestry には RESTful url があるようですが、JAX-RS とアノテーションはどうですか?
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>
それはあなたが始めるのに役立つはずです。
REST Web サービスを Tapestry プロジェクトに統合したい場合、Tapestry の RESTful URL はおそらく十分ではありません。
この Tynamo モジュールを介して、 RESTEasyを Tapestryに統合することができます。RESYEasy は JAX-RS 互換です。
Tapestry で RESTEasy を使用したことはありませんが、Spring 2.5 で使用しましたが、非常にうまく機能しました。