Гобелен + ОТДЫХ - PullRequest
       14

Гобелен + ОТДЫХ

10 голосов
/ 04 мая 2010

Я хочу добавить REST в свой проект гобелена, и поэтому мне нужно знать, как его реализовать.

Какой способ лучше?

ТНХ.

[Редактировать, скопировано из ответа:] Мне нужно добавить службы GET, PUT, POST и DELETE в мое приложение для гобеленов. Я вижу, что у Tapestry есть URL RESTful, но как насчет JAX-RS и аннотаций?

Ответы [ 2 ]

11 голосов
/ 06 мая 2010

Вы можете использовать Restlet API или любую другую реализацию JAX-RS, которая может работать как сервлет.

Чтобы веб-сервис прекрасно сосуществовал с 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 не обрабатывать запросы к пути / ws /, где расположен веб-сервис.

Вот фрагмент, показывающий, как приблизительно должен выглядеть ваш web.xml с Tapestry плюс сервлет Restlet:

<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>

Это должно помочь вам начать.

9 голосов
/ 16 мая 2010

Если вы хотите интегрировать веб-сервис REST в проект Tapestry, то, вероятно, недостаточно RESTful-адресов Tapestry.

Возможно интегрировать RESTEasy в Гобелен через этот модуль Tynamo . RESYEasy совместим с JAX-RS.

Я не использовал RESTEasy с Tapestry, но с Spring 2.5, и он работал очень хорошо.

...