Фактически, конфигурация маршрутизации должна быть выполнена в вашем классе приложения Restlet. Вам необходимо переопределить метод createInboundRoot, чтобы присоединить ваши ресурсы к путям, как описано ниже:
public class MyRestletApplication extends Application {
public Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/path/{id}", MyServerResource.class);
(...)
return router;
}
}
После этого к настроенным ресурсам можно обратиться через настроенный сервер Restlet. Например, с адресом http://localhost:8082/path/12, если вы внедрили сервер Restlet следующим образом:
public static void main(String[] args) {
try {
Server server = new Server(Protocol.HTTP, 8182);
server.setNext(new MyRestletApplication());
server.start();
(...)
} catch(Exception ex) {}
}
Restlet также предоставляет адаптер сервлета с расширением org.restlet.ext.servlet. Последний позволяет использовать сервлет ServerServlet для доступа к настроенным ресурсам. При настройке этого сервлета необходимо указать класс приложения, который будет использоваться (приложение содержит пути для ваших ресурсов) через параметр контекста org.restlet.application. Сервлет может быть настроен как каждый сервлет и отображен в шаблоне / *, как описано ниже:
<web-app>
<context-param>
<param-name>org.restlet.application</param-name>
<param-value>org.restlet.example.MyApplication</param-value>
</context-param>
<servlet>
<servlet-name>ServerServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServerServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
В этом случае ваше приложение RESTful, реализованное с помощью Restlet, будет доступно через контейнер сервлета. В этом случае ваше приложение должно быть упаковано как веб-приложение Java EE и будет доступно по адресу: http://localhost:8080/mywebapp/path/12.
Надеюсь, это поможет вам.
Thierry