Jersey, Tomcat: La ressource demandée n'est pas disponible erreur
Je travaille à l'obtention d'un service RESTful configuré à l'aide de Jersey et Tomcat dans RAD 8.5. J'ai regardé des tonnes de stackoverflow questions liées à mon erreur avec aucun d'eux de travailler. Il n'y a pas d'erreurs dans ma console.
Quand je viens de type: http://localhost:8080/, j'obtiens la page d'accueil d'Apache, de sorte que le serveur fonctionne, mais http://localhost:8080/jersey/rest/hello ou http://localhost:8080/jersey/WEB-INF/classes/jersey/Hello.java
ne fonctionne pas.
Voici l'erreur: (avec ma bibliothèque de pots sur le côté)
Voici mon Hello.java
package jersey;
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 Hello {
//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>";
}
@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
<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>com.example</param-value>
</init-param>
</servlet>
Versions:
- Tomcat: 7.0.663
- RAD: 8.5
- Jersey: 2.19
Merci,
En Réponse à Maciej
Cela a fonctionné! J'ai besoin d'ajouter <servlet-mapping>
avec le modèle d'url de /*
. Ensuite, utilisez http://localhost:8080/jersey/hello, j'ai eu une réponse du serveur!
<?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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="jersey" version="2.5">
<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>jersey</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
OriginalL'auteur Jake Schuurmans | 2015-08-12
Vous devez vous connecter pour publier un commentaire.
Vous êtes le déploiement d'un code compilé pour Tomcat, donc vous ne serez pas en mesure d'accéder à l' *.les ressources java.
Annotation
@Path("/hello")
indique le chemin d'accès à la ressource est disponible.Il est fixé à:
base URL + /your_path
. Lebase URL
est basé sur votre nom de l'application, la servlet et le modèle d'URL à partir de laweb.xml
:Également remplacer
@Produces
annotation à@Consumes
:Essayer: http://localhost:8080/jersey/hello
The requested resource is not available
Essayez de configurer la servlet de cartographie de match:
jersey/*
Im va répondre à ma question
servlet-mapping
balise définie sur le même niveau queservlet
Maintenant, mon serveur ne démarre pas. Je reçois un couple de
Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/jersey]]
erreursOriginalL'auteur Maciej Lach
Assurez-vous que vous avez gardé tous les Maillot de fichiers Jar de "WEB-INF -> lib" dossier
OriginalL'auteur Towhidul Haque Roni
Même après avoir suivi les étapes comme mentionné par Maciej, si elle dit 404 ressource introuvable, la Mention de la sous-classe qui implémente la classe d'Application et de l'écrire dans les init-param balise web.xml
Cela a fonctionné pour moi.
OriginalL'auteur Aishwarya Sai Chamanoor