我想将 REST 添加到我的挂毯项目中,因此需要知道如何实现它。
什么是更好的方法?
谢谢。
[编辑,从答案复制:]我必须在我的挂毯应用程序中添加 GET、PUT、POST 和 DELETE 服务。我看到 Tapestry 有 RESTful url,但是 JAX-RS 和注释呢?
您可以使用Restlet API或任何其他可以作为 servlet 运行的 JAX-RS 实现。
为了让 Web 服务与 Tapestry 很好地共存,您必须在Tapestry 应用程序模块中配置一件事:
/**
* 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 Servlet 后您的 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 兼容。
我没有将 RESTEasy 与 Tapestry 一起使用,而是在 Spring 2.5 中使用,它运行得非常好。