Java Jersey-Rest : Keine-provider-Klassen gefunden. (404 Fehler beim Zugriff auf URL)

Edit: ich hatte nicht realisiert, dass alle Anfrage wurden zuerst in den "Apache" und dann umgeleitet wurden auf dem Tomcat. Ich habe eine neue Umleitung in der apache2.conf - Datei. Finden Sie die akzeptierte Antwort für details.

Ich habe genau das gleiche problem, wie diese Frage.
Jersey REST Der ResourceConfig-Instanz enthält keine root-Ressource-Klassen
Allerdings muss der Benutzer niemals die Frage beantwortet.

Bin ich Tomcat verwenden, ohne maven. Ich folgte diesem tutorial.
http://www.ibm.com/developerworks/web/library/wa-aj-tomcat/index.html

Ich änderungen vorgenommen web.xml als pro der Artikel

ich.e die neue servlet und servlet-mapping erstellt wurde, mit der korrekten Paket-Namen.

<servlet>
  <servlet-name>Jersey REST Service</servlet-name>
<servlet-class>
  com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
  <init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>sample.hello.resources</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>Jersey REST Service</servlet-name>
  <url-pattern>/rest/*</url-pattern>
</servlet-mapping> 

Habe ich bereitgestellt, die die folgenden jar-Dateien nach tomcat

asm.jar
jersey-server.jar
jersey-core.jar
jsr311.jar

Den tomcat startup log die folgenden Ausnahmen.

    com.sun.jersey.api.core.PackagesResourceConfig init
    INFO: Scanning for root resource and provider classes in the packages:
      sample.hello.resources

   com.sun.jersey.api.core.ScanningResourceConfig logClasses
    INFO: Root resource classes found:
      class sample.hello.resources.HelloResource

   com.sun.jersey.api.core.ScanningResourceConfig init
    INFO: No provider classes found.

   com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
    INFO: Initiating Jersey application, version 'Jersey: 1.8 06/24/2011 12:17 PM'

Wenn ich auf die URL bekomme ich einen 404.
http://localhost:8080/Jersey/rest/hello

Code:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class HelloResource {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayHello() {
        return "Hello Jersey";
    }
}  

Sehe ich keine anderen Ausnahmen in den logs

  • Würde es helfen, wenn Sie gepostet web.xml und das Beispiel.Hallo.Ressourcen.HelloResource Klasse als gut.
  • code Hinzugefügt, und web.xml
  • Diejenigen, die nicht so Aussehen wie Ausnahmen von mir in deinem log, nur informative Meldungen. Das IBM tutorial sagt etwas über das erstellen einer web-app namens Jersey mit Eclipse. Ich bin nicht vertraut mit der Bereitstellung von Tomcat über Eclipse, aber sind Sie sicher, dass der Jersey ist vom richtigen Einsatz Weg? Das heißt, Sie haben versucht, das surfen auf localhost:8080/rest/hello ?
  • Der Kontext-Pfad ist ohne es zu ändern, wie das Eclipse-Projekt name. Sie können untersuchen, diese einfach durch drill-down-Projekte-Baum des Sie Tomcat in Ihrem Eclipse-Server-view. Aber es ist möglich, ändern Sie den Kontext-Pfad in Ihrem Projekt-Eigenschaften in der Web-Projekt-Einstellungen Registerkarte. Jedoch sollte der Pfad "localhost:port/[Eclipse project name]/rest/hello
  • sollte nicht das @Weg "/rest/hello"? Ich weiß nie, und gerade Karte des Servlets /* 🙂
  • Ich glaube nicht, dass die "Keine-provider-Klassen gefunden" ist ein fataler problem, oder bezogen auf die 404 für den eigentlichen API-Anfragen.

InformationsquelleAutor kensen john | 2011-07-05
Schreibe einen Kommentar