È possibile utilizzare lo Restlet API o qualsiasi altra implementazione JAX-RS che può essere eseguita come servlet.
di avere il servizio web convivono piacevolmente con Tapestry, c'è una cosa che devi configurare nel vostro Tapestry application module:
/**
* 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/.*");
}
Questo frammento dice il filtro Tapestry di non gestire le richieste ai/ws/percorso in cui si trova il servizio web.
Ecco un frammento che mostra ciò che il vostro web.xml dovrebbe approssimativamente simile con Tapestry più un Restlet Servlet:
<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>
Questo dovrebbe aiutarti a iniziare.
Tapestry 5 segue da solo principi riposanti. Vorresti aggiungere un servizio web RESTful alla tua applicazione? Per favore chiarisci la tua domanda in modo che le persone possano capirla. – Henning
Buona domanda che mi stavo chiedendo io stesso +1 –