Как настроить файл web.xml для нескольких приложений рестлета?

Я хочу создать сервлет, который будет служить контейнером для множества приложений рестлета. Я сделал сервлет для одного приложения для рестлета, но не вижу, как я могу пересмотреть файл web.xml, чтобы он подходил для многих приложений. Вот файл web.xml для одного рестлета: (почти дословно взято из «Restlet in Action MEAP»):

<?xml version="1.0" encoding="UTF-8"?>
...
<display-name>Servlet engine as a container of Restlet applications</display-name>
<servlet>
<servlet-name>CompanyServerApplication</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
<init-param>
  <param-name>org.restlet.application</param-name>
  <param-value>server.CompanyServerApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>CompanyServerApplication</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>

person Jeffrey Keehr    schedule 21.05.2012    source источник


Ответы (1)


Просто добавьте дополнительные блоки <servlet> и <servlet-mapping> к вашему web.xml. Например, у меня есть отдельные приложения Restlet для запросов пользователей и запросов администратора. Мой web.xml выглядит так:

<!-- user servlet -->
<servlet>
  <servlet-name>user</servlet-name>
  <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
  <init-param>
    <param-name>org.restlet.application</param-name>
    <param-value>com.myapp.server.resource.user.UserApplication</param-value>
  </init-param>
  <init-param>
    <param-name>org.restlet.clients</param-name>
    <param-value>HTTP HTTPS</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>user</servlet-name>
  <url-pattern>/user/*</url-pattern>
</servlet-mapping>

<!-- admin servlet -->
<servlet>
  <servlet-name>admin</servlet-name>
  <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
  <init-param>
    <param-name>org.restlet.application</param-name>
    <param-value>com.myapp.server.resource.admin.AdminApplication</param-value>
  </init-param>
  <init-param>
    <param-name>org.restlet.clients</param-name>
    <param-value>HTTP HTTPS</param-value>
  </init-param>
</servlet>

<servlet-mapping>
  <servlet-name>admin</servlet-name>
  <url-pattern>/admin/*</url-pattern>
</servlet-mapping>
person Andy Dennie    schedule 21.05.2012