Einfaches Rest Webservice Rückgabe http status 404
Habe ich versucht, um dieses tutorial zu arbeiten:
Link
Ich bin mit Apache Tomcat 7.0 und die Jersey-2.0-Bibliotheken.
Das ist mein service:
package org.arpit.javapostsforlearning.webservice;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("ConversionService")
public class FeetToInchAndInchToFeetConversionService {
@GET
@Path("/InchToFeet/{i}")
@Produces(MediaType.TEXT_XML)
public String convertInchToFeet(@PathParam("i") int i) {
int inch=i;
double feet = 0;
feet =(double) inch/12;
return "<InchToFeetService>"
+ "<Inch>" + inch + "</Inch>"
+ "<Feet>" + feet + "</Feet>"
+ "</InchToFeetService>";
}
@Path("/FeetToInch/{f}")
@GET
@Produces(MediaType.TEXT_XML)
public String convertFeetToInch(@PathParam("f") int f) {
int inch=0;
int feet = f;
inch = 12*feet;
return "<FeetToInchService>"
+ "<Feet>" + feet + "</Feet>"
+ "<Inch>" + inch + "</Inch>"
+ "</FeetToInchService>";
}
}
- und das ist meine web.xml:
<?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_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>RESTfulWebServiceExample</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>org.arpit.javapostsforlearning.webservice</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>
Ich habe versucht zu Laufen, auf dem server zu implementieren und ich habe auch versucht zu lassen, eclipse exportieren Sie Sie als war-Datei und stellen Sie es mit der tomcat-application-manager.
Beide Arten bekomme ich den HTTP-Status 404 Die angeforderte Ressource ist nicht verfügbar.
Vor diesem gibt es Fehlermeldung in den logs.
Ich habe auch versucht, eine einfache index.html Datei in den Webcontent-Ordner, aber ich konnte auch nicht zugreifen, die im browser.
Ich weiß, dass es viele ähnliche Beiträge im forum, aber nachdem Sie gelesen und Stunden zu versuchen, ich kann immer noch nicht herausfinden, wie mein problem zu lösen.
Danke für deine Antwort. Ich habe versucht, das bereitstellen, das es mit meiner firewall ausgeschaltet, aber es hatte das gleiche Ergebnis. Mein webserver ist dies auf localhost:8080.
So können Sie nicht einmal sehen, den Tomcat-root-admin-Seite localhost:8080/manager/html ?
Wenn ich nun den localhost manuell mit dem Start in das bin-Verzeichnis kann ich zugreifen, localhost:8080/manager/html. Aber wenn ich den server starten in eclipse und rufen es im browser-es gibt mir auch die ressource nicht verfügbar Antwort.
klingt wie dein server ist nicht richtig registriert zu eclipse. vielleicht bauen die nur Krieg und installieren Sie es manuell.
InformationsquelleAutor SvenK | 2014-02-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Manchmal Fehlerbehebung für java webservices frustrierend ist, so ist es hilfreich, einige einfache Schritte befolgen, um den Fehler zu finden.
Ist Ihre firewall? Prüfen Sie, ob es ausgeschaltet ist oder nicht blockieren den port der webserver läuft. Die meisten der Zeit es ist der port 8080. Es ist in der url localhost:
8080
/mywebservice/urlÜberprüfen Sie die root-Anwendung Seite geliefert, die von Ihrem server, um sicherzustellen, dass der server überhaupt läuft. Auf Tomcat, die in der Regel localhost:8080/manager/html
Überprüfen Sie die Protokolle Ihrer Anwendung container für eine stacktrace auf starten, um sicherzustellen, dass Ihre Bereitstellung ist nicht im Irrtum.
Versuchen zum bereitstellen einer möglichst webservice wie "Hallo Welt" jax-rs um sicherzustellen, dass Sie haben die richtigen Bibliotheken und andere Konfigurationen verfügbar.
Wenn Sie all diese und noch kein webservice-Ihr jax-rs-Annotationen sind wahrscheinlich falsch, in irgendeiner Weise. Sie können Anfrage Passender in Ihrem web.xml durch das hinzufügen der Konfiguration.
<web-app>
<servlet>
<servlet-name>Jersey REST Service for value codes</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
...
<init-param>
<param-name>com.sun.jersey.config.feature.Trace</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
...
</web-app>
Sehen Sie url Spuren in deinem log
Hinweis: wahrscheinlich nicht eine gute Idee, lassen Sie diese auf in der Produktion
InformationsquelleAutor jeremyjjbrown
Bitte aktivieren Frühjahr Protokollierung. Es wird gedruckt, alle die @RequestMapping in der Start wie unten
INFO 2017-09-21 10:41:35,822 (AbstractHandlerMethodMapping.java:531) - Abgebildet "{[/myapi/cal/calsalary],Methoden,=[GET || PUT],params=[configName && configUserId && userId && asId]}" auf öffentlichen
InformationsquelleAutor Gaurang Popat