REST API с веб-приложением (JSP, сервлеты) - PullRequest
1 голос
/ 15 октября 2010

У меня есть один нормальный сервлет и один связанный с REST сервлет, относящийся к REST, т.е. сервлет-контейнер, настроенный в web.xml.Случай 1 - Шаблон URL для обычного сервлета - "/ login" Шаблон URL для другого сервлета REST - "/ ". В этом случае весь запрос получит сервлет REST.Запрос на вход в систему также отправляется только сервлету.Случай 2 - Если шаблон URL для сервлета REST был изменен на "/ rest / " (это корневой путь моего тестового класса ресурсов) и шаблон Url для обычного сервлета, как он был "/ login", работает только обычный запрос для / login,но любые запросы REST не работают.

Может кто-нибудь помочь мне в этом ??

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Мое лучшее предположение, учитывая то, что вы нам сказали ( Я предполагаю, что вы используете два разных веб-приложения ):

Установить контексты в вашей конфигурации tomcat server.xml

<Context path="" docBase="/yourworkspace/project-webapp/docs/" ... />
<Context path="/rest" docBase="/yourworkspace/project-rest/docs/" ... />

Отображение приложений

В rest-web.xml (ваше веб-приложение на джерси)

<servlet-mapping>
    <servlet-name>project-rest</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

В jsp-web.xml (ваше веб-приложение jsp)

<servlet-mapping>
    <servlet-name>project-webapp</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

В вашем приложении на Джерси сопоставление URL должно начинаться с /

Пример:

@Path("/car")
@Named("carResource")
public interface CarResource {

  @GET
  @Path("{carId}")
  @Consumes("text/plain")
  @Produces("application/xml")
  Car getCar(@PathParam("carId") Long carId);

должен обрабатывать GET <a href="http://domain.org/rest/car/42" rel="nofollow">http://domain.org/rest/car/42</a> запросов.

0 голосов
/ 15 октября 2010

Чего вы хотите достичь?В случае 2 попробуйте изменить это на /rest/*.

...