Rest Services Web retournant un 404
C'est ma première fois à l'aide d'Eclipse, et en me faisant rage beaucoup.
J'ai installé Tomcat 6.0, téléchargé le Maillot des bibliothèques, et j'ai suivi les tutos de : http://www.vogella.com/articles/REST/article.html#first_client
J'ai créé le Nom du Projet que RestExample, et que j'ai un paquet de.jay.jersey.première et intérieur que j'ai une classe HelloWorldResource, et voici à quoi il ressemble:
package de.jay.jersey.first;
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 HelloWorldResource {
//This method is called if TEXT_PLAIN is request
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayPlainTextHello() {
return "Hello Jersey";
}
//This method is called if XML is request
@GET
@Produces(MediaType.TEXT_XML)
public String sayXMLHello() {
return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";
}
//This method is called if HTML is request
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHtmlHello() {
return "<html> " + "<title>" + "Hello Jersey" + "</title>"
+ "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> ";
}
}
et mon web.xml ressemble
<?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>RestExample</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>de.jay.jersey.first</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>
Et je suis en train d'utiliser curl:
curl http://localhost:8081/RestExample/rest/hello
Apache Tomcat/6.0.35 - rapport d'Erreur
d'État HTTP 404 - /RestExample/repos/Bonjour
type Statut
port
message /RestExample/repos/bonjour
de
description La ressource demandée (/RestExample/repos/bonjour)
pas disponibles.
Apache Tomcat/6.0.35
La question est que dois-je changer dans le web.xml afin que je puisse accéder à cette ressource?
J'ai essayé RestExample/de.jay.jersey.première/repos/bonjour, et il n'a toujours pas de travail. TOmcat fonctionne sans erreurs.
source d'informationauteur roymustang86
Vous devez vous connecter pour publier un commentaire.
Je l'ai essayé avec Tomcat 7.0 et il fonctionne très bien:
web.xml
Parcouru http://localhost:8084/RestExample/rest/hello et il fonctionne ok
Il m'a fallu beaucoup de temps pour comprendre pourquoi ça ne fonctionnait pas pour moi, en dépit de la recherche sur le web pour la solution.
L'erreur que je faisais était que les noms de paquets n'étaient pas à jour pour le nouveau maillot de l'api.
Voici ce package de mise à jour des noms devrait ressembler (Web.xml):
Avis que
<servlet-class>
et<param-name>
sont différents(mis à jour) à partir de vogella tutoriel.Il peut ne pas être la réponse à cette question en particulier, mais pourrait aider quelqu'un.
Je l'ai trouvé à partir de ici.
Veuillez ajouter tous donné des Pots dans votre projet
Projet (Clic Droit)>Propriétés>Java Build Path>Bibliothèques>Add JARs/Add External JARs
j'ai cherché une solution au même problème pendant des heures.
cela a résolu mon problème:
si vous utilisez Maven-Projet (par exemple avec archétype maven-archetype-webapp) et la classe HelloWorldResource est mis en œuvre dans le dossier src/main/resources cette classe n'est pas compilé (par exemple, puis en exécutant "mvn clean package" ou "exécuter sur le serveur" dans eclipse)
Mettre en œuvre HelloWorldResource dans le dossier src/main/java à la place, et pas plus de 404 se passe..
(si vous créez Maven-Projet avec maven-archetype-webapp le dossier doit être créé manuellement)
Vérifier si le chemin d'accès ont ce bar '/'
exemple:
@Path('/path")
dans certains cas, ce problème n'est que le manque bar!
comme l'aticle dit:
vous essayez de spécifier la méthode de la voie que vous voulez l'appeler