HTTP-Status 404 Die angeforderte Ressource ist nicht verfügbar, jersey tomcat
Ich habe Probleme beim starten, mein Test-app auf der tomcat8 server. Wenn ich das http://localhost:8080/loginService/rest/auth
ist, wird die Fehlermeldung "HTTP Status 404
Typ Status-Bericht. Meldung: Beschreibung: Die angeforderte Ressource ist nicht verfügbar."
Und die Startseite http://localhost:8080/
funktioniert einwandfrei.
Ich habe alle jar-Dateien(jersey-client -, jersey-common, jersey-container-servlet,jersey-container-servlet-core, jersey-server, javax.ws.rs-api-2.0 ....) unter WEB-INF/lib. Und loginService wird bereitgestellt durch den server.
den web.xml Datei unter WEB-INF
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"
version="2.5">
<display-name>loginService</display-name>
<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>loginTest</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>
</web-app>
mein Test-app:
package loginTest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/auth")
public class Authenticate {
//This method is called if TEXT_PLAIN is request
@GET
@Produces(MediaType.TEXT_PLAIN)
public String test() {
return "succes";
}
}
Hier sind der Teil der Konsole msg scheint, wie ein problem:
七月 10, 2014 3:06:20 下午 org.apache.catalina.core.StandardContext reload
严重: Exception starting Context with name [/loginService]
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/loginService]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3780)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:293)
at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5539)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1365)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1369)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1369)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1345)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: jersey/repackaged/com/google/common/base/Function
at org.glassfish.jersey.internal.ServiceFinder.<clinit>(ServiceFinder.java:165)
at org.glassfish.jersey.servlet.internal.ServletContainerProviderFactory.getAllServletContainerProviders(ServletContainerProviderFactory.java:66)
at org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer.onStartup(JerseyServletContainerInitializer.java:132)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 8 more
Caused by: java.lang.ClassNotFoundException: jersey.repackaged.com.google.common.base.Function
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1324)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1177)
... 13 more
七月 10, 2014 3:06:20 下午 org.apache.catalina.core.StandardContext reload
信息: Reloading Context with name [/loginService] is completed
Und ich bin mit tomcat8 und jersey2.10.1.
Ich habe gerade meine web.xml Datei :
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"
version="2.5">
<display-name>loginService</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>loginTest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</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>
</web-app>
- Stellen Sie sicher, Sie haben gehalten, das Trikot Jar-Dateien in WEB-INF> lib-Ordner?
- Erste Sache, die ich bemerkt: "com.Sonne.jersey.spi.container.- servlet.ServletContainer" Ist: Jersey 1.X-nicht-Jersey-2.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, wie Ihre Anwendung fehlen einige der benötigten Bibliotheken oder (Da Sie bereits die jercy-common.jar gibt es eine Inkompatibilität, die in die Bibliotheken bereits in den classpath.
Daher möchte ich darauf hinweisen, eine perfekt funktioniert(Getestet mit Tomcat 8) - Probe in den folgenden link.
Jersey-HelloWorld-Beispiel
Hoffe, das hilft.
Hatte ich dieses problem. Ich löste es durch das löschen aller web.xml Dateien (innerhalb von "target" - Ordner und "main" - Ordner). Dann mit der rechten Maustaste auf das Projekt im Projekt-Explorer und java EE tools -> Generate Deployment Descriptor Stub. Danach einfach rechts klicken Sie erneut auf das Projekt -> ausführen als -> Maven build... Dann in der "Ziel" - Feld schreiben Sie: "clean install" (ohne Anführungszeichen). Klicken Sie auf Übernehmen, klicken Sie auf "Ausführen". Dann gehen Sie zu Ihrer Tomcat-manager, deinstallieren Sie die alte .war-Datei und stellen Sie es erneut. Dann führen Sie es einfach! Es funktionierte für mich.
Laut diesem link https://www3.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_HowTo.html#TomcatDebug , es gibt viele Gründe für diese Art von problem auftreten. Darüber hinaus hatte ich durch dieses problem vor. Ich löste es durch die folgende Art und Weise. Werfen Sie einen Blick auf die web.xml überschrift in tomcat/webapps/ROOT/WEB-INF/web.xml. Und stellen Sie sicher, dass Ihr Ihre web.xml so sieht es aus. Speziell versuchen, vergleichen Sie die Versionen. Zum Beispiel:
Bei mir war
Den tomcat-version, die Sie installieren können wie folgt sein:
Wenn man sich anschaut, beide haben version Unterschied und Metadaten-Attribut Unterschied. Also header von Ihr web.xml und tomcat/webapps/ROOT/WEB-INF/web.xml müssen identisch sein. Durch ändern der Versionsnummer in der Kopfzeile von meinem web.xml in 4 ist mein problem gelöst. Welche version Sie haben, stellen Sie sicher, es ist identisch mit dem ROOT ist web.xml version. Hoffe es hilft