Что здесь не так?
The ResourceConfig instance does not contain any root resource classes.
Dec 10, 2010 10:21:24 AM com.sun.jersey.spi.spring.container.servlet.SpringServlet initiate
SEVERE: Exception occurred when intialization
com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:103)
at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1182)
at com.sun.jersey.server.impl.application.WebApplicationImpl.access$600(WebApplicationImpl.java:161)
at com.sun.jersey.server.impl.application.WebApplicationImpl$12.f(WebApplicationImpl.java:698)
at com.sun.jersey.server.impl.application.WebApplicationImpl$12.f(WebApplicationImpl.java:695)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:197)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:695)
at com.sun.jersey.spi.spring.container.servlet.SpringServlet.initiate(SpringServlet.java:117)
Фильтр:
<filter>
<filter-name>JerseyFilter</filter-name>
<filter-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</filter-class>
<init-param>
<param-name>com.sun.jersey.config.feature.Redirect</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name>
<param-value>/views/</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
<param-value>/(images|css|jsp)/.*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>JerseyFilter</filter-name>
<url-pattern>/myresource/*</url-pattern>
</filter-mapping>
Код:
@Path ("/admin")
public class AdminUiResource {
@GET
@Produces ("text/html")
@Path ("/singup")
public Viewable getSignUp () {
return new Viewable("/public/signup", "Test");
}
}
"/singup"
вместо"/signup"
имея никакого эффекта здесь?Ответы:
Вы пробовали добавить
к вашему определению SpringServlet? Очевидно, замените my.package.name на пакет, в котором находится AdminUiResource, и убедитесь, что он находится в пути к классам.
источник
init-param
вcom.sun.jersey.spi.container.servlet.ServletContainer
сервлет.Я новичок в Джерси - у меня была такая же проблема, но когда я удалил «/» и просто использовал @path («admin»), это сработало.
источник
ВАМ НУЖНО ДОБАВИТЬ НАЗВАНИЕ ПАКЕТА НА
источник
Это означает, что он не смог найти ни одного класса, который можно было бы выполнить как веб-службу RESTful для джерси.
Проверьте:
com.sun.jersey.config.property.packages
Отсутствует ли " " в вашем web.xml.com.sun.jersey.config.property.packages
Отсутствует или недопустимо значение параметра ' ' (указанный пакет не существует). Это должен быть пакет, в который вы поместили свои классы POJO, которые работают как службы jersey.@Path
атрибутом.источник
<servlet> <servlet-name>Jersey Web Services</servlet-name> <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class> <!-- <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> -------><param-value>package.without.any.webservices</param-value> </init-param> --> <load-on-startup>1</load-on-startup> </servlet>
Ваш пакет ресурсов должен содержать , по крайней мере , один POJO , который либо с аннотацией
@Path
или, по крайней мере , один метод с аннотацией@Path
или запроса метода целеуказателем, такие как@GET
,@PUT
,@POST
или@DELETE
. Методы ресурсов - это методы класса ресурсов, помеченные указателем метода запроса. Это решило мою проблему ...источник
Я столкнулся с этой проблемой с JBOSS EAP 6.1. Мне удалось развернуть свой код через eclipse на сервере JBOSS, но как только я попытался развернуть файл как файл WAR в JBOSS, я начал получать эту ошибку.
Решением было настроить web.xml для правильной работы с JBOSS, позволив им работать вместе.
Следующие две строки были закомментированы в web.xml, чтобы позволить JBOSS выполнять собственные настройки.
А затем добавьте следующие параметры контекста после
источник
<context-param/>
раздел не пришлось . Осталось только удалить<param-name>com.sun.jersey.config.property.packages</param-name>
<init-param/>
раздел.<init-param>
исправленную проблему в Wildly 8.2.0; однако у меня были и другие неприятности, такие как приложение, которое я развертывал, не работало с Jersey на Wildly. Jersey (используется GlassFish) и RestEasy (используется Wildfly) имеют разные конфигурации.В основном я исправил это, как показано ниже, и все работало нормально.
источник
Я получаю это исключение из-за отсутствия ResourseConfig в Web.xml.
Добавить:
Класс обслуживания означает: класс, который содержит такие услуги, как:
@Path("/orders")
источник
У меня была такая же проблема с попыткой запустить веб-приложение из проекта eclipse. Как только я скопировал файлы .class,
/WEB-INF/classes
он работал отлично.источник
У меня была такая же проблема, я тестировал кучу разных примеров и пробовал все возможные решения. Что, наконец, заставило меня работать, так это когда я добавил
@Path("")
строку над классом, я оставил это.источник
У меня была такая же проблема, и я обнаружил, что проблема связана с тем, как я развернул исходный код. Как сказано в сообщении об ошибке:
"...does not contain any root resource classes"
. Таким образом, он не смог найти никаких классов ресурсов в настроенном пакете. Я просто неправильно развернул классы - поэтому он не поднял его.Я забыл развернуть свои файлы классов в каталоге WAR / WEB-INF / classes - изначально он был у меня прямо в корне файла WAR. Поэтому, когда он искал классы ресурсов, он их не нашел - потому что они существовали в другом (неправильном) месте.
источник
Та же проблема - web.xml выглядел так:
Предоставление настраиваемого приложения отменяет любое автоматическое обнаружение классов, настроенное в XML. Вам необходимо реализовать правильные методы, чтобы написать собственный код для подключения классов. См. Javadocs.
источник
Другой возможной причиной этой ошибки является то, что вы забыли добавить библиотеки, которые уже находятся в
/WEBINF/lib
папке, в путь сборки (например, при импорте.war
-файла и не проверять библиотеки при запросе в мастере). Просто случилось со мной.источник
Это случилось со мной, когда я развернул свой main.jar, не установив флажок добавления записей в каталог в меню экспорта jar в Eclipse .
источник
Что ж, уже поздно отвечать. Я столкнулся с той же проблемой, и мои поиски в Google были напрасными. Однако мне удалось выяснить, в чем проблема. Причин появления этой ошибки может быть много, но я получил ошибку из-за следующего, и я хотел поделиться этим со своими коллегами-разработчиками.
источник
Мне пришлось добавить косую черту в конце @path
источник
Хорошо ... Для меня все работает нормально, просто назначаю "класс сервлета" com.sum.jersey.spi.container.servlet.ServletContainer, я использую IDE (Eclipse Mars)
но по какой-то причине мне пришлось перезагрузить компьютер, чтобы работать на моем локальном хосте. Если все еще не работает? Вы должны добавить в свой web.xml этот код между тегом "servlet".
"the.package.name" - это имя пакета, в котором у вас есть классы. Если вы используете IDE, обновите проект и снова запустите в Tomcat. все еще не работает? перезагрузите компьютер и будет работать.
источник
Еще нужно проверить комбинацию предыдущих записей.
Вы можете иметь в своем файле web.xml следующее:
и ты можешь иметь
но у вас не может быть обоих, иначе вы получите ошибку такого рода. Исправление в этом случае заключалось бы в закомментировании того или другого (вероятно, будет закомментирован первый фрагмент кода)
источник
да, добавив параметр init для com.sun.jersey.config.property.packages, я решил эту проблему.
объединял службы отдыха трикотажа в приложение Spring на основе maven и получил эту ошибку.
источник
У меня тоже такая ошибка, позаботьтесь о настройках в xml.
я написал
com.sun.jersey.comfig.property.packages
Вместо
com.sun.jersey.config.property.packages
После исправления все заработало.
источник
эта проблема связана с тем, что Джерси не может найти пакет иждивенцев для вашей службы отдыха, объявленной
проверьте распространение пакета вашего проекта и подтвердите, что он равен вашему значению параметра web.xml
источник
Возможно, уже поздно, но вот как я решил эту ошибку.
Если это решение не работает,
В затмении:
Щелкните правой кнопкой мыши свой проект или выберите проект и нажмите Alt + Enter. В левой части открывшегося окна найдите путь сборки Java.
Выберите библиотеки на правой панели вкладок: если есть что-то, что повреждено или показывает крестик поверх банок, удалите и снова добавьте ту же банку.
Применить и закрыть
Восстановите свой проект
источник
В моем случае я дважды добавил банки в путь сборки после импорта из войны. Он работал нормально после удаления дополнительных jar-файлов, на которых отображались страницы ошибок дескриптора развертывания ошибок.
добавление
источник
Тоже сталкивался с этой проблемой дважды по разным причинам. Первый раз забыл включить
как описано в предыдущих комментариях, и как только я это сделал, он начал работать.
Тем не менее ... в другой день я запустил Eclipse, ожидая продолжения с того места, где остановился, и вместо того, чтобы моя программа работала, она снова показала ту же ошибку. Я начал проверять, не внес ли я случайно какие-то изменения и сохранил ли поврежденный файл, но не смог найти такой ошибки, и файл выглядел точно так же, как у меня, все по порядку. Так как накануне это сработало, после начального поиска я подумал, что, может быть, это сбой Eclipse, или Tomcat, или что-то в этом роде, поэтому давайте просто попробуем внести некоторые изменения и посмотреть, отреагирует ли он. Итак, я сделал пробел + backspace в файле web.xml, просто чтобы обмануть Eclipse, что файл был изменен, и затем сохранил его. Следующим шагом был перезапуск сервера Tomcat (из Eclipse IDE) и вуаля, он снова работает!
Может быть, кто-нибудь с более широким опытом объяснит, в чем на самом деле проблема?
источник
Основная причина этого исключения:
Вы не указали правильное имя пакета, в котором вы использовали
@Path
или забыли настроить, в файле web.xml / конфигурации (имя пакета Rest API Class File, ваше имя пакета класса)Проверьте эту конфигурацию внутри
<init-param>
источник