Джерси, Guice, используя пути доступа без полномочий root - PullRequest
0 голосов
/ 01 февраля 2012

Я использую Jersey 1.11 вместо Guice 3.0 на Tomcat 6.0.32 в стандартной конфигурации:

configureServlets() {
    filter("/ws/*").through(GuiceContainer.class);
}

И простой класс ресурсов:

@Path("/resource")
public class Resource { ... }

Учитывая это, я бы предположил, что доступ к "/ ws / resource" будет работать; но на самом деле никаких ресурсов не найдено. Кажется, проблема заключается в том, что путь запроса вычисляется неправильно. В качестве обходного пути я установил параметр PROPERTY_FILTER_CONTEXT_PATH на /ws, который заставляет все это работать:

Map<String, String> jerseyConfig = new HashMap<String, String>();
jerseyConfig.put(ServletContainer.PROPERTY_FILTER_CONTEXT_PATH, "/ws");
filter("/ws/*").through(GuiceContainer.class, jerseyConfig);

Таким образом, мои вопросы:

  1. Это действительно ошибка или «фича»?
  2. Есть ли другое решение или обходной путь для этого?

Для информации, я видел одну ошибку Guice, которая может быть связана, кажется, она была объединена с другой, но мне интересно, исправлена ​​ли она правильно ( ссылка )

1 Ответ

4 голосов
/ 04 марта 2012

Используйте подачу вместо фильтра.

configureServlets() {
    serve("/ws/*").with(GuiceContainer.class);
}

После этого вы сможете нажать /ws/resource.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...