2014-09-17 4 views
0

Так что я пытаюсь настроить мою установку Jetty/Jersey/Gradle для обслуживания index.html, который находится в src/main/webapp/static/, когда по умолчанию используется url. У меня есть /api для моего java-сервера, поэтому я решил показать, что статический контент будет несколько легким, но у меня проблемы. Вот что у меня в web.xmlОбслуживание статического содержимого Jetty Jersey Gradle

<filter> 
    <filter-name>Webapp Filter</filter-name> 
    <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>main/webapp/static</param-value> 
    </init-param> 
    <init-param> 
     <param-name>jersey.config.servlet.filter.staticContentRegex</param-name> 
     <param-value>/.*html</param-value> 
    </init-param> 
    </filter> 
    <filter-mapping> 
    <filter-name>Webapp Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 

я упускаю что-то или делать что-то не так? Когда я gradle jettyRun я получаю

The ResourceConfig instance does not contain any root resource classes. 
failed Webapp Filter: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes. 
Failed startup of context [email protected]8e8a298{/Project,/User/Project/src/main/webapp} 
com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes. 

так это заставляет меня думать, что он смотрит на нужном месте, но, возможно, это просто не найти правильную вещь? Спасибо за помощь, я действительно ценю это

+0

У вас есть это? – zyexal

+0

Не могли бы вы дать некоторую обратную связь?!? – zyexal

ответ

1

Исключение означает: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes. заметил, что этот джерси не может найти классы обслуживания.

Ваш init-param jersey.config.server.provider.packages не установлен правильно и дополнительно не в том месте. Это место, где вы хотите добавить ресурс CLASSES, и после этого трикотаж хочет найти некоторые аннотации @Path, а также классы ресурсов.
Как я уже сказал, его не в том месте - его не часть фильтра, его часть конфигурации сервлета . В качестве альтернативы вы можете оставить это и объявить пакеты в своей реализации ResourceConfig или Application.

пожалуйста прочитал: deployment guide

Резюме:

<filter>...</filter> 

, где вы можете разместить фильтры и

<servlet>...</servlet> 

(я не могу найти в вашей части web.xml) является где вы должны вставить ServletContainer в.

Потому что я ответил this question вам вчера, я действительно советую вам прочитать руководства и попробовать некоторые примеры проектов, таких как:

gradle & tomcat
jersey examples

Вы также найдете некоторые web.xml там.

+0

Я закончил с этим другим способом, имея «<приветствующий файл>», а затем используя AngularJS для перенаправления и отображения других страниц. – user3280133

Смежные вопросы