81 votes

L'instance ResourceConfig ne contient aucune classe de ressources racine

Qu'est-ce qui ne va pas ici?

 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) 
 

Filtre:

 <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> 
 

Code:

 @Path ("/admin") 
public class AdminUiResource { 

  @GET 
  @Produces ("text/html") 
  @Path ("/singup") 
  public Viewable getSignUp () { 
    return new Viewable("/public/signup", "Test"); 
  } 

}
 

83voto

Mike Points 381

Avez-vous essayé d'ajouter

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

à votre définition SpringServlet? Évidemment, remplacez my.package.name par le paquet dans lequel se trouve AdminUiResource et assurez-vous qu'il se trouve dans le chemin d'accès aux classes.

34voto

Anver Sadhat Points 805

Je suis nouveau à Jersey - j'ai eu le même problème, mais quand j'ai enlevé le "/" et juste utilisé le @path ("admin") cela a fonctionné.

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

28voto

Pawan Points 173

Cela signifie, il ne trouve pas de toute classe qui peut être exécuté comme un maillot de service web RESTful.

Vérifier:

  • Si 'com.sun.jersey.config.property.packages"est manquant dans votre web.xml.
  • Si la valeur de 'com.sun.jersey.config.property.packages' ce paramètre est manquant ou non valide (mentionné le paquet n'existe pas). Il doit être un paquet où vous avez mis vos classes POJO qui s'exécute en tant que maillot de services.
  • S'il existe au moins une classe POJO, qui possède une méthode annotée avec l' @Path d'attribut.

12voto

hakish Points 861

Votre paquet de ressources doit contenir au moins un pojo annoté avec @Path ou avoir au moins une méthode annotée avec @Path ou un indicateur de méthode de requête, tel que @GET, @PUT, @POST ou @DELETE. Les méthodes de ressources sont les méthodes d'une classe de ressources annotée avec un indicateur de méthode de requête. Cela a résolu mon problème ..

7voto

Rodrigo Asensio Points 520

J'ai eu le même problème en essayant d'exécuter l'application Web à partir d'un projet Eclipse. Dès que j'ai copié les fichiers .class dans /WEB-INF/classes cela a parfaitement fonctionné.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X