Web.xml est pas lu par Apache Tomcat

le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010 - 10 juin 2008 à 19:09
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010 - 12 juin 2008 à 16:58
Bonjour,

je fais une application avec le framework struts,avec comme serveur Apache Tomcat et j'ai actuellement un souci que je ne comprend pas.
j'ai tout établi,web.xml,struts-config.xml contenus dans le WEB-INF de mon application et même que j'ai rajouté le contexte de mon application dans le fichier server.xml dans le dossier "conf" de tomcat.
Le test classique localhost:8080 marche donc le serveur Apache Tomcat marche.

je suis preneur pour toutes les pistes pouvant me dépanner.
Merci.

17 réponses

dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
11 juin 2008 à 08:39
Salut,

Tu as fais comment pour déployer l'application? Tu as créé un .war?

Perso, j'utilise JBoss mais bon, les deux sont relativement similaires.

<hr size="2" width="100%" />Timmy!!!
0
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
11 juin 2008 à 10:23
et bien merci d'avoir répondu,j'ai finalement trouvé pourquoi ca buggait.c'était à cause de la valeur de la balise load on startup qui était à 2.quand je l'ai réglée à 1 ca a marché nickel.normal,ca préconise en ce moment le chargement du controlleur au début de l'application.
Autre chose,le souci que j'ai est relatif au chemin de mes servlets.quand je lance un .do,le controlleur bug et il me dit qu'il ne trouve pas la servlet concernée par l'erreur:
java.lang.NoClassDefFoundError
AjouterMarqueAction (wrong name: com/jmd/test/struts/controleur/AjouterMarqueAction)

bah là jai bien crée le chemin com/jmd/test/struts/controleur/ dans lequel j'ai placé la classe AjouterMarqueAction donc je ne comprend pas ce bug!

voila la partie de mon struts-config.xml concernée.


<forward name="confirmation" path="/vues/confirmation.jsp" redirect="false" />
<forward name="afficherErreurs" path="/vues/erreurs.jsp" redirect="false" />


merci.
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
11 juin 2008 à 10:52
hum... tout est normal dans ta définition de ton action...

Tu as bien un répertoire src et un répertoire bin où il y a rspectivement la source de ton package et sa compilation?

Et dans ton web.xml, tu as bien une balise comme ça :

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    *.do
  </servlet-mapping>

<hr size="2" width="100%" />Timmy!!!
0
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
11 juin 2008 à 11:43
Oui dvoraky,

j'ai effectivement déclaré le type .do donc je ne comprend pas là pourquoi ca marche pas!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
11 juin 2008 à 11:52
Alors là, je sèche.
Aucune idée, je sais pas, ton fichier .war qui est généré, regarde bien que dans ce fichier .war qu'il y a dans le sous dossier WEB-INF un dossier nommé "classes"

A part ça j'ai plus vraiment d'idée la...

<hr size="2" width="100%" />Timmy!!!
0
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
11 juin 2008 à 12:34
:(

bon ca vient peut être de là>>>com.jmd.test.struts.data
puisque j'ai crée dans mon dossier /classes dans lequel jai mis la classe AjouterMarqueAction.
le path tu sais com/jmd/test/struts/data que j'ai déclaré dans struts-config



<forward name="confirmation" path="/vues/confirmation.jsp" redirect="false" />
<forward name="afficherErreurs" path="/vues/erreurs.jsp" redirect="false" />


mais l'erreur me dit qu'elle ne trouve pas le servlet dans le path :
wrong name: com/jmd/test/struts/controleur/AjouterMarqueAction
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
11 juin 2008 à 13:22
Hum, mouais, ta classe AjouterMarqueAction fait bien partie du package com.jmd.struts.data ?

Tu utilises quel IDE? Comment construis-tu ton application? Avec Ant? Tu fais des .war?

<hr size="2" width="100%" />Timmy!!!
0
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
11 juin 2008 à 19:43
je nutilise pas d'IDE actu,mais bon j'ai Eclipse d'installé!

bah euuh AjouterMarqueAction fait bien partie de cette.
je l'ai précisé en début de classe

>>>package com.jmd.struts.data
0
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
11 juin 2008 à 19:48
rectificatif
c'est plutot le package

>>>package com.jmd.test.struts.data
0
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
11 juin 2008 à 20:37
je vien de régler le souci,cétai du à un probleme de package en fait!
Bon là jai un bug signe qu'il exécute bien mon code,c'est déja ca ;)
euuh c le bug java.lang.NullPointerException !!!!

merci
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
11 juin 2008 à 22:26
Une erreur de type NullPointerException signifie que tu utilises une variable qui n'a pas été initialisée et qui, donc, vaut null.

La ligne qu'il y a juste apres la ligne "... java.lang.NullPointerException..." montre où se trouve l'erreur (ça te met la classe, deux points et le numéro de ligne où se trouve l'erreur)

Voilà

<hr size="2" width="100%" />Timmy!!!
0
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
12 juin 2008 à 00:30
Oui je l'ai vu mais euuh j'aurai un peu de mal,c'est relatif tu sais à l'encapsulation des données envoyées par le formulaire en fait,pas besoin d'instanciation de la classe en principe...

public class AjouterMarqueAction extends Action {

public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res) throws Exception
{

String resultat = null;
int flag=0;

//Récupération des valeurs saisies dans le formulaire
String lib=((Marque)form).getLibelle();

le bug est sur la ligne:
String lib=((Marque)form).getLibelle();
0
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
12 juin 2008 à 04:34
ai modifié le code de ma servlet :

public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res) throws Exception
{

String resultat = null;
int flag=0;

//Récupération des valeurs saisies dans le formulaire
Marque marque=new Marque();
marque = (Marque)form;
String lib=marque.getLibelle();

et là j'ai un nouveau bug à savoir:
java.lang.NoSuchMethodError: com.jmd.test.struts.data.Marque: method ()V not found

apparement il arrive pas à créer l'instance de la ma classe,vu que c'est à ligne de la création de l'instance qu'il bute!
Marque marque=new Marque();

toute idée serait la bienvenue!
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
12 juin 2008 à 08:51
Salut... visiblement tu as bossé toute la nuit!

Bon euh oui là c'est que soit le constructeur n'existe pas soit il y a dans le constructeur un appel à une méthode qui n'existe pas.

Tu aurais utilisé Eclipse tu n'aurais eu aucun soucis, il t'aurait dis l'erreur et  t'aurais meme proposé de la corriger

Regarde vers le constructeur

<hr size="2" width="100%" />Timmy!!!
0
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
12 juin 2008 à 14:54
j'ai des soucis pour l'install du plugin Tomcat sur Eclipse c'est pour ca que je ne l'utilise pas en fait.j'ai la version 3.3.2
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
12 juin 2008 à 15:01
Moi je te conseille de développer avec Eclipse, ensuite, tu exportes ton projet dans un fichier .war que tu vas mettre à la main dans le dossier deploy de tomcat.

Si tu avais du temps, je te dirais de regarder un peu le fonctionnement de Ant, qui te fais cette manip tout seul.

Sinon, ton constructeur existe? tu as importé le package contenant la classe Marque?

<hr size="2" width="100%" />Timmy!!!
0
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
12 juin 2008 à 16:58
Oui le construteur existe bien oui.je fais un ensemble de tests là c'est chaud
0
Rejoignez-nous