JAVA EE - Erreur 404 Eclipse + Tomcat

Résolu/Fermé
AoiTora
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015
- 17 avril 2015 à 14:53
AoiTora
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015
- 19 avril 2015 à 13:11
Bonjour,
Je suis en train de découvrir le principe des servlets avec le tutoriel d'OpenClassroom : https://openclassrooms.com/fr/courses/626954-creez-votre-application-web-avec-java-ee/619584-la-servlet
J'en suis donc à la partie du tutoriel linkée ci-dessus, plus exactement à la partie "Mise en service Do you « GET » it? ".
Je suis supposée avoir une erreur à cause du GET, mais j'ai à la place une belle erreur 404, La ressource demandée n''est pas disponible.
Voici le contenu de mes différents fichiers

web.xml (placé dans WebContent>WEB-INF)
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>tests.Test</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/tory</url-pattern>
</servlet-mapping>
</web-app>


Test.java (vide à cette partie du tutoriel je crois)
package tests;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test extends HttpServlet {}


Et donc, lorsque je tente une exécution de type http://localhost:8080/Test/tory j'ai une erreur 404.

J'ai besoin de connaître les bases du Java EE pour mon stage, qui débute lundi, et bloquer sur une erreur qui vient probablement d'un souci à une seule ligne m'énerve un peu.

Toute aide est donc la bienvenue =)

Merci d'avance!
A voir également:

1 réponse

KX
Messages postés
16568
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
5 juillet 2022
2 968
17 avril 2015 à 20:29
Bonjour,

Puisque tu as
<url-pattern>/tory</url-pattern>
le lien à utiliser devrait être http://localhost:8080/tory
0
AoiTora
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015

17 avril 2015 à 21:49
Je viens d'essayer, toujours un beau 404 malheureusement :(
0
KX
Messages postés
16568
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
5 juillet 2022
2 968
17 avril 2015 à 22:29
Je viens de faire un test, il y a effectivement un champ intermédiaire, qui correspond au nom du war déployé.

Par exemple, si tu déploies toto.war ce serait donc http://localhost:8080/toto/tory
0
AoiTora
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015

17 avril 2015 à 22:42
Je ne suis pas sûre de bien comprendre. A quoi correspond le war ? Et à quel endroit est-il défini ?
0
KX
Messages postés
16568
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
5 juillet 2022
2 968 > AoiTora
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015

17 avril 2015 à 23:09
J'avoue que je ne connais pas ton tutoriel et je ne sais pas comment Eclipse fait pour intégrer le serveur, c'est une fonctionnalité compliquée qui est assez peu utile en pratique.

En Java il y a 5 types d'archives : JAR, WAR, EJB*, RAR et EAR
Techniquement ce sont tous des fichiers ZIP avec des structures imposées.
(*les archives EJB ont une extension .jar et sont liés aux EAR, c'est compliqué...)

Dans ton cas ce qui t'intéresse ce sont les WAR (Web Application aRchive), la structure imposée doit contenir en particulier un dossier "WEB-INF" dans lequel tu as le fichier web.xml que tu décris plus haut, un répertoire "classes" où doit être les classes compilées de ta servlet, etc.

À moins qu'Eclipse ne s'autorise de monstrueux raccourcis, tu dois donc avoir dans Tomcat un fichier .war dont le contenu correspond à ce que tu codes...
Le nom de ce war permet donc de séparer les applications sous Tomcat, qui peux déployer plusieurs WAR en même temps, chacune avec un contexte URL de base différent - pour ne pas tout mélanger. Si on a donc deux applications tata.war et toto.war déployées sous Tomcat, les URL de bases seraient donc http://localhost:8080/tata/ et http://localhost:8080/toto/

Remarque : tu parles de Java EE, mais Tomcat n'est pas un serveur Java EE, uniquement un serveur de servlet. Il pourra donc déployer des WAR, mais pas des EAR (pour les RAR je ne sais pas, en théorie non, en pratique peut-être).
0
AoiTora
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015

Modifié par KX le 18/04/2015 à 11:49
Ma confusion concernant le Java EE vient probablement du fait que le tutoriel sert à apprendre ce langage, mais on commence par voir la notion de servlet.
Voici mon arborescence eclipse :

Il se fait tard, je vais continuer mes recherches demain.
Merci déjà pour l'aide que tu m'apportes!
0