webentwicklung-frage-antwort-db.com.de

Jersey Java.lang.ClassNotFoundException: com.Sun.jersey.spi.container.servlet.ServletContainer

Ich versuche mit Tomcat und Eclipse einen Webservice zu erstellen, indem ich die Jersey-Bibliothek verwende. Dies ist meine Serviceklasse: 

package com.gontuseries.university;

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


@Path("/university")
public class UniversityRestWs {

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String getHtmlUniversityInfo(){
        return "<html><body>test</body></html>";
    }

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getTextUniversityInfo(){
        return "test";
    }
}

Und dies ist die Datei web.xml 

 <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>com.gontuseries.university</param-value>
 </init-param>
 </servlet>
 <servlet-mapping>
 <servlet-name>Jersey REST Service</servlet-name>
 <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>

Wenn ich meinen Dienst teste, erhalte ich Java.lang.ClassNotFoundException: com.Sun.jersey.spi.container.servlet.ServletContainer . Ich habe Jersey von https://jersey.Java.net/download.html heruntergeladen

Kann mir jemand helfen? Danke

7
user2607498

Für mich bestand das Problem darin, dass der Server keine Jars im lib-Ordner hatte. Stellen Sie sicher, dass er auf alle Abhängigkeiten in: Project -> properties -> development Assembly -> add -> Java verfügt Erstelle Pfadeinträge.

12
Eran

Ich hatte das gleiche Problem. Wir müssen nur den Build-Pfad für Eclipse verwenden. Das würde funktionieren.

Stellen Sie sicher, dass er auf alle Abhängigkeiten zugreifen kann: Projekt -> Eigenschaften -> Entwicklung Assembly -> Hinzufügen -> Java-Buildpfadeinträge -> Maven-Abhängigkeit

Ich habe nur eine Jersey-Bundle-Abhängigkeit verwendet

"Abhängigkeit

        <groupId>com.Sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.17</version>

abhängigkeit"

Wenn Sie Maven verwenden, funktionieren Ihre Anwendung am besten mit wenigen einfachen Schritten

9
Swarit Agarwal

Mann, ich hatte das gleiche Problem. Ich löse id und füge jersey-servlet-1.18.jar zu WEB-INF/lib hinzu. Dann sah dieser Ordner so aus:

.
Denken Sie daran, all diese Gläser zu Ihrem Build-Pfad hinzuzufügen

7
Natan Lotério

Verwenden Sie Jersey 2.x? In diesem Fall wurde die ServletContainer-Klasse in ein anderes Paket verschoben. Dieser Artikel enthält einige gute Informationen zum Ändern Ihrer web.xml-Datei bei der Migration von Jersey 1.7 nach 2.x: https://Java.net/projects/jersey/lists/users/archive/2013 -06/nachricht/91 .

6
bickster

Die com.Sun.jersey.spi.container.servlet.ServletContainer-Klasse ist in der "jersey-servlet.jar" enthalten, daher sollten Sie sie zusammen mit der "jersey-server.jar" in WEB-INF/lib ablegen.

4
Ján Halaša

Ich habe den gleichen Fehler - "Java.lang.ClassNotFoundException: com.Sun.jersey.spi.container.servlet.ServletContainer" erhalten, als ich versuche, einen restful-Jersey-Webservice in Tomcat von Eclipse auszuführen. 

Folgende Schritte haben mir geholfen, das Problem zu lösen:

  • Korrigieren Sie die Maven-Abhängigkeit von der rechten Version der abhängigen Gläser

         <dependency>
         <groupId>com.Sun.jersey</groupId>
         <artifactId>jersey-server</artifactId>
         <version>1.19</version>
         </dependency>
         <dependency>
         <groupId>com.Sun.jersey</groupId>
         <artifactId>jersey-servlet</artifactId>
         <version>1.19</version>
         </dependency>
    
  • Klicken Sie mit der rechten Maustaste auf das Eclipse-Projekt -> Maven -> Projekt aktualisieren

  • Stellen Sie sicher, dass in der Eclipse-Eigenschaftenentwicklung Assembly korrekt konfiguriert ist. Klicken Sie mit der rechten Maustaste auf Projekt - Eigenschaften -> Entwicklung Assembly -> Hinzufügen -> Java-Buildpfadeinträge -> Maven-Abhängigkeit

1
Indu

Wenn Sie die Version Zip von JERSEY-jaxrs-ri-2.9 verwenden, verwenden Sie die unten stehende Datei in der WEB.XML-Datei.

<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
  <param-name>jersey.config.server.provider.packages</param-name>
   ......
</init-param>
0
raj

Ich habe diesen Fehler in einem Eclipse-Projekt erhalten, das zuvor einwandfrei funktioniert hat und auf Tomcat 7.0 ausgeführt wird. Schließlich löste ich es, indem ich das Projekt aus Tomcat entfernte und es wieder hinzufügte.

0
ygesher

Die oben angegebenen Lösungen sind korrekt, aber selbst nach diesen Änderungen wurde dieser Fehler angezeigt. Was ich also getan habe, war, dass alle von Maven heruntergeladenen Jersey-Gläser entfernt wurden und Project erneut mit der neuen Maven-Abhängigkeit aktualisiert wurde. Dadurch wurde mein Problem behoben 

0
Rogger296