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