Экземпляр resourceconfig по не содержит каких-либо классов корневой ресурс


что здесь происходит?

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.access0(WebApplicationImpl.java:161)
        at com.sun.jersey.server.impl.application.WebApplicationImpl.f(WebApplicationImpl.java:698)
        at com.sun.jersey.server.impl.application.WebApplicationImpl.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");
  }
}
25 75

25 ответов:

вы пробовали добавить

<init-param>
  <param-name>com.sun.jersey.config.property.packages</param-name>
  <param-value>my.package.name</param-value>
</init-param>

к вашему определению SpringServlet? Очевидно заменить my.package.name с пакетом, в котором находится AdminUiResource, и убедитесь, что он находится в пути к классам.

Я новичок в Джерси - у меня была та же проблема, но когда я удалил "/" и просто использовал @path("admin"), это сработало.

@Path("admin")
public class AdminUiResource { ... }

Это означает, он не смог найти ни одного класса, который может быть выполнен как jersey RESTful web service.

проверка:

  • илиcom.sun.jersey.config.property.packages' отсутствует в вашем сеть.XML.
  • может ли значение для 'com.sun.jersey.config.property.packages' param отсутствует или недействителен (указанный пакет не существует). Это должен быть пакет, в котором вы разместили свои классы POJO, которые работают как службы Джерси.
  • существует ли хотя бы один класс POJO, который имеет метод с аннотацией .

ВАМ НУЖНО ДОБАВИТЬ ИМЯ ПАКЕТА В

<init-param>
  <param-name>com.sun.jersey.config.property.packages</param-name>
  <param-value>your.package.name</param-value>
</init-param>

ЕЩЕ ОДНА ГЛУПОСТЬ, КОТОРУЮ Я ЗАМЕТИЛ,
Мне нужно обновить мой проект после СБОРКА еще он показывает мне ту же ошибку.
прокомментируйте, пожалуйста, если вы знаете причину, почему нам нужно обновить?

ваш пакет ресурсов должен содержать по крайней мере один pojo, который либо аннотирован с помощью @Path, либо имеет по крайней мере один метод, аннотированный с помощью @Path или указателя метода запроса, такого как @GET, @PUT, @POST или @DELETE. Методы ресурсов-это методы класса ресурсов, аннотированные указателем метода запроса. Это решило мою проблему..

я столкнулся с этой проблемой с JBoss EAP 6.1. Я смог развернуть свой код через eclipse на сервере JBOSS, но как только я попытался развернуть файл как файл войны в JBOSS, я начал получать эту ошибку.

решение состояло в настройке сети.xml для правильной работы с JBOSS, позволяя им работать вместе.

следующие две строки были закомментированы в интернете.xml, чтобы позволить JBOSS делать это собственные конфигурации

<!--  
    <init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>com.your.package</param-value>
</init-param> -->

а затем добавить следующий контекст params после

<context-param>
    <param-name>resteasy.scan</param-name>
    <param-value>false</param-value>
</context-param>
<context-param>
    <param-name>resteasy.scan.resources</param-name>
    <param-value>false</param-value>
</context-param>
<context-param>
    <param-name>resteasy.scan.providers</param-name>
    <param-value>false</param-value>
</context-param>

в основном я исправил его, как показано ниже, и все работало нормально.

<servlet>
    <servlet-name >MyWebApplication</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-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>
</servlet>

<servlet-mapping>
    <servlet-name>MyWebApplication</servlet-name>
    <url-pattern>/myapp/*</url-pattern>
</servlet-mapping>

Я получаю это исключение, из-за отсутствия Resourceconfig в Интернете.XML.

добавить:

<init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>/* Name of Package where your service class exists */</param-value>
</init-param>

класс обслуживания означает: класс, который содержит такие услуги, как:@Path("/orders")

У меня была такая же проблема с попыткой запустить веб-приложение из проекта eclipse. Как только я скопировал .файлы классов в /WEB-INF/classes Он работал отлично.

У меня была такая же проблема, тестируя кучу разных примеров, и пробовал все возможные решения. Что, наконец, заставило его работать на меня, когда я добавил @Path("") по классной линии, я пропустил это.

та же проблема - web.xml выглядел так:

<servlet>
    <servlet-name>JerseyServlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.mystuff.web.JerseyApplication</param-value>
    </init-param>
...

предоставление пользовательского приложения переопределяет любое XML-настроенное автоматическое обнаружение классов. Вам нужно реализовать правильные методы, чтобы написать свой собственный код для подключения классов. См. javadocs.

имел ту же проблему и выяснил, что это была проблема с тем, как я развернул свой исходный код. Как говорится в сообщении об ошибке:"...does not contain any root resource classes". Поэтому он не смог найти классы ресурсов в настроенном пакете. Я просто неправильно развернул классы-вот почему он не поднял его.

Я забыл развернуть свои файлы классов в каталоге/WEB-INF / classes войны - первоначально я просто имел его непосредственно в корне файла войны. Поэтому, когда он искал классы ресурсов, он их не нашел - потому что они существовали в другом (неправильном) месте.

другой возможной причиной этой ошибки является то, что вы забыли добавить библиотеки, которые уже находятся в /WEBINF/lib папка к пути сборки (например, при импорте .war - file и не проверять библиотеки при запросе в Мастере). Просто так случилось со мной.

Это случилось со мной, когда я развернул свой главный.баночка, не проверяя добавить записи каталог на затмение.

Ну, это немного поздно, чтобы ответить. Я столкнулся с той же проблемой, и мои поиски Google были напрасны. Тем не менее, мне удалось найти то, что проблема была. Там может быть много причин для этой ошибки, но я получил ошибку из-за следующей и я хотел бы поделиться этим с моими коллегами-разработчиками.

  1. Я ранее использовал Джерси 1.3 и я получал эту ошибку. Но когда я обновил банки до последней версии Джерси, эта проблема была решенный.
  2. другой пример, в котором я получил эту ошибку, был, когда я пытался развернуть свою службу в JBoss, создав файл war. Я сделал ошибку, включая Java-файлы .война вместо классов java.

мне пришлось добавить косую черту в конце @path

@Path ("/admin/") 

ОК... Для меня отлично работают только только присвоение "сервлет-класса" com.сумма.Джерси.спи.контейнер.сервлет.ServletContainer, я использую IDE (Eclipse Mars)

<servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/frontend/*</url-pattern>
    </servlet-mapping>

но по какой-то причине мне пришлось перезагрузить компьютер, чтобы работать в моем localhost. Если все еще не работает? Вы должны добавить в свой веб.xml этот код находится между тегом "сервлет".

<init-param>
  <param-name>com.sun.jersey.config.property.packages</param-name>
  <param-value>the.package.name</param-value>
</init-param>

"на.пакет.имя" - это имя пакета, где у вас есть свои классы. Если вы используете IDE, обновите проект и снова работать в Tomcat. все еще не работает? перезагрузите компьютер и будет работать.

еще одна вещь, чтобы проверить это сочетание предыдущих записей

Вы можете иметь в вашем веб -.XML-файл это:

<init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.acme.rest</param-value>
</init-param>

и вы можете иметь

<context-param>
    <param-name>resteasy.scan</param-name>
    <param-value>false</param-value>
</context-param>
<context-param>
    <param-name>resteasy.scan.providers</param-name>
    <param-value>false</param-value>
</context-param>
<context-param>
    <param-name>resteasy.scan.resources</param-name>
    <param-value>false</param-value>
</context-param>

но вы не можете иметь оба или вы получаете такого рода ошибки. Исправление в этом случае будет заключаться в том, чтобы закомментировать один или другой (вероятно, первый фрагмент кода будет закомментирован)

да добавление init param для com.солнце.Джерси.конфиг.свойство.пакеты исправили эту проблему для меня.

слияние служб Jersey rest в приложение Maven на основе spring и получил эту ошибку.

Я также получил такого рода ошибки, пожалуйста, позаботьтесь о конфигурациях в xml.

я писал com.sun.jersey.comfig.property.packages

вместо com.sun.jersey.config.property.packages

после коррекции он работает.

эта проблема заключается в том, что Джерси не может найти пакет dependecy для вашего отдыха сервис объявлен

проверьте распределение пакета проекта и утверждать, что это равно вашей сети.в XML Параметр Значение

в моем случае я добавил банки дважды в путь сборки после импорта из war. Он работал нормально после удаления дополнительных банок, которые показывали страницы ошибок дескриптора развертывания ошибок

добавлять

<init-param>
          <param-name>com.sun.jersey.config.property.packages</param-name>
          <param-value>service.package.name</param-value>
</init-param>

вероятно, слишком поздно, но именно так я решил эту ошибку.

Если это решение не работает,

<init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>/* Name of Package where your service class exists */</param-value>
</init-param>

в eclipse:

Правой Кнопкой Мыши на вашем проекте или выберите проект и нажмите Alt + Enter в левой части открытого окна найдите Java Build Path

выберите библиотеки на правой панели вкладок: если есть что-то, что повреждено или показывает крестик сверху из банок вынуть и снова добавить ту же банку

применить и закрыть

перестроить проект

также пришли через эту проблему, дважды по разным причинам. В первый раз я забыл включить

<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>my.package.name</param-value>
</init-param>

как описано в предыдущих комментариях, и как только я это сделал, он начал работать.

пока... в другой день я начал Eclipse, ожидая продолжить там, где я остановился, и вместо того, чтобы моя программа работала, она снова показала ту же ошибку. Я начал проверять, не сделал ли я случайно некоторые изменения и сохранил поврежденный файл, но не смог найти такого ошибка и файл выглядел точно так же, как примеры у меня есть, все в порядке. Поскольку он работал накануне, после некоторых первоначальных поисков я подумал, ну, может быть, это затмение или сбой Tomcat или что-то еще, поэтому давайте просто попробуем внести некоторые изменения и посмотреть, реагирует ли он. Итак, я сделал пробел + backspace в интернете.xml-файл, просто чтобы обмануть Eclipse, что файл изменен, и сохранил его затем. Следующим шагом был перезапуск сервера Tomcat (из Eclipse IDE) и вуаля, он снова работает!

может быть, кто-то с более широким опытом можно было бы объяснить, какая проблема действительно стояла за всем этим?

основная причина этого исключения:

вы не дали правильное имя пакета, где вы используете @Path или забыл настроить в интернете.xml / конфигурационный файл (имя пакета файла класса REST API, имя пакета вашего класса)

поставьте настройки внутри <init-param>