JSP avec Tomcat4, ça merde, je vois pas ce qu'y se passe ! - Java - Programmation
Marsh Posté le 28-10-2002 à 15:31:11
Marsh Posté le 28-10-2002 à 15:49:04
En fait plus aucun classe de ma web-app n'est reconnue par les JSP, quand je la recommpile.
Tomcat4 me balance (entre autres) l'erreur suivante :
error: File C:\Tomcat4\webapps\ldsweb2\WEB-INF\classes\com\damaris\ldsweb\JLDSVisitor.java does not contain type com.damaris.ldsweb.JLDSVisitor as expected. Please adjust the class path so that the file does not appear in the package com\damaris\ldsweb. |
Alors que ce fichier JLDSVisotir.java contient bel et bien une description valide de la classe JLDSVisitor
Marsh Posté le 28-10-2002 à 15:58:27
Balance ton fichier web.xml et ta structure de répertoire, pour voir...
Marsh Posté le 28-10-2002 à 16:18:32
En fait, quand je récupère les classes que j'avais hier (que j'avais gardées dans un .war), et que je le déplois sur tomcat, c'est ok, ça marche.
Et si je récupère les sources modifiées aujourd'huis de ces même classes, ça me met ces messages de merde.
J'ai pourtant rien fait d'extraordinaire.
_Mac_, si tu crois que ça peut t'aider :
mon web.xml :
<!DOCTYPE web-app |
Heu, ma structure de répertoire je sais pas trop ou la foutre...
Mais disons que je suis SUR que JLDSVisitor.java est bien dans le répertoire WEB-INF\classes\com\damaris\ldsweb\ de ma web-app.
Marsh Posté le 28-10-2002 à 17:13:33
Bon là je bloque vraiement.
Au risque de me répèter, voici un bilan de ma situation actuelle :
Cas ou mes JSP fonctionnent :
Je récupère des .class contenus dans un war. Je le déplois sur Tomcat. C'est ok. |
Si à partir des sources d'aujourd'hui (dont la plupart n'ont pas changés), je re-compile mes classes, la compilation se fait sans pb, mais mes JSP ne semblent plus trouver mes classes (pourtant un .class est bien généré, évidement !).
Au cas ou ça puisse aiguille qqn, voila qqs exemples de messages d'erreur que Tomcat4 ma balance :
org.apache.jasper.JasperException: Unable to compile class for JSP |
Tout de suite après suit :
error: File C:\Tomcat4\webapps\ldsweb2\WEB-INF\classes\com\damaris\ldsweb\JLDSVisitor.java does not contain type com.damaris.ldsweb.JLDSVisitor as expected. Please adjust the class path so that the file does not appear in the package com\damaris\ldsweb. |
Et enfin, après apparaissent les erreures signalant que j'utilise ds les scriptlets de ma JSP, des noms de classes invalides (forcément, vu qu'il ne les as pas trouvés !)
Je suis en train de pèter le plombs...
Si qqn croit pouvoir qqch pr moi, faut essayer...
Marsh Posté le 28-10-2002 à 17:55:44
Question (con) : que se passe-t-il si tu ne laisses que les .class dans /WEB-INF/classes/com/... ?
Marsh Posté le 28-10-2002 à 18:03:12
_Mac_ a écrit a écrit : Question (con) : que se passe-t-il si tu ne laisses que les .class dans /WEB-INF/classes/com/... ? |
...et que j'vire les .java ?
Marsh Posté le 28-10-2002 à 18:04:11
je pense que tu as mal déclarer un package d'une de tes classes ou jsp
Marsh Posté le 28-10-2002 à 18:04:31
El_Gringo a écrit a écrit : ...et que j'vire les .java ? |
ils ne devraient pas y être
Marsh Posté le 28-10-2002 à 18:04:49
benou a écrit a écrit : je pense que tu as mal déclarer un package d'une de tes classes ou jsp |
je veux dire une déclaration de package, pas un import
vérifie que dans ta classe JLDSVisitor.java, le package est bien com.damaris.ldsweb
Marsh Posté le 28-10-2002 à 18:06:42
Bah... ça à l'air d'être ça.
En fait, pour une question pratique, j'ai mes .java et mes .class dans le même répertoire.
Si je vire JLDSVisitor.java de mon répertoire classes/com/damaris/ldsweb, ça marche.
C vraiment space. Avant ça le gènait pas !
(merci pour cette avancée ds la résolution de mon pb Mac)
Marsh Posté le 28-10-2002 à 18:08:14
benou a écrit a écrit : ils ne devraient pas y être |
ha bon !?
ms ça simplifie vachement les choses (au moment du déployement réél, je les vire hein. c juste qd je développe que c comme ça !)
Marsh Posté le 28-10-2002 à 18:08:45
benou a écrit a écrit : je pense que tu as mal déclarer un package d'une de tes classes ou jsp |
...Les jsp, on peut les mettre ds des packages ?
Marsh Posté le 28-10-2002 à 18:10:20
benou a écrit a écrit : vérifie ce que je t'ai dit ... |
Non non, le package de JLDSVisitor est Ok. J'ai rien changé aux sources de JLDSVisitor depuis que ça merde...
De toute façon, je m'ferai jetter à la compile si le package correspondait pas au répertoires de la source, non !?
Marsh Posté le 28-10-2002 à 18:11:39
El_Gringo a écrit a écrit : De toute façon, je m'ferai jetter à la compile si le package correspondait pas au répertoires de la source, non !? |
ben c'est ce qui se passe : tomcat recompile tes classes automatiquement j'ai l'impression ...
Marsh Posté le 28-10-2002 à 18:12:52
El_Gringo a écrit a écrit : ...Les jsp, on peut les mettre ds des packages ? |
après vérification, on dirait que non ... bizarre ...
Marsh Posté le 28-10-2002 à 18:15:09
benou a écrit a écrit : ben c'est ce qui se passe : tomcat recompile tes classes automatiquement j'ai l'impression ... |
Ouais, j'avais pas fait gaffe, mais normalement, il a pas à me parler du .java lui. Il ne devrais toucher qu'au .class
apparement, le fait que je mettre mes .class ds le même rep que mes sources, ça le dérange... étonnant. ça fait 2 mois que j'fais ça, ça s'est toujours bien passé !
Marsh Posté le 28-10-2002 à 18:46:01
T'aurais pas un problème de date lié, par exemple, au changement d'heure ? Peut-être que le compilo s'emmêle les pinceaux en essayant de déterminer quel fichier est le plus récent du .class ou du .java
Juste une idee en l'air....
Marsh Posté le 29-10-2002 à 09:08:32
R3g a écrit a écrit : T'aurais pas un problème de date lié, par exemple, au changement d'heure ? Peut-être que le compilo s'emmêle les pinceaux en essayant de déterminer quel fichier est le plus récent du .class ou du .java Juste une idee en l'air.... |
Hééé, tu sais qu'elle est vraiment pas conne ton idée ?
à mon avis ça vient de ça : Pour l'instant, j'utilise intelliJ, avec une licence d'essaie, qui prenait fin il y a qqs jours. Du coup, en attendant qu'on reçoive la version commerciale, j'ai bidouillé en remontant la date de mon pc. Du coup, quand j'ai compilé, le fichier compilé devait apparaitre moins récent que le source.
Enfin, maintenant, le pb ne se pose plus, dans mon projet, j'ai séparé les sources des .class, mais, bravo, bien réfléchi R3G. Tu m'apporte une exlpiquation logique, j'aime bien ça !
Et merci à tous ceux qui ont essayé de m'aider...
Marsh Posté le 29-10-2002 à 09:27:24
Du coup je met à nouveau mes sources avec mes .class (je trouve pas génial de mettre à 2 endroits différents les sources de mes JSP (forcément ds ma web-app) et les sources de mes classes Java.
Du coup je met tout ds ma web-app. Et, effectivement, en remettant à la bonne date mon PC, c'est OK. T un as sur ce coup là R3g !
Marsh Posté le 29-10-2002 à 11:38:04
Pas de mérite, j'ai déja eu le même problème quand j'ai piqué la pile du PC du boulot pour remplacer la mienne
Marsh Posté le 28-10-2002 à 15:24:44
Pfff, j'en ai marre.
En fait, je restais avec une vieille version de mes JSP, alors j'ai supprimé le contenu du répertoire work\standalone\localhost\maweb-app
de TomCat4.
Depuis que j'ai fait ça, mes JSP merdent complètement.
Apparement, Jasper ne reconnait plus les classes de ma web-app.
Quand j'essayr d'exécuter une JSP, j'ai le message suivant :
org.apache.jasper.JasperException: Unable to compile class for JSP
C:\Tomcat4\webapps\ldsweb2\WEB-INF\classes\com\damaris\ldsweb\JLDSVisitor.java:1: The source file encoding may be different with this platform encoding. Please use -encoding option to adjust file encoding, or apply native2ascii utility to make source file ASCII encoding.
Alors que ma classe JLDSVisitor marchait très bien avant que je vide ce maudit répertoire work...
...Une idée ?
Message édité par El_gringo le 28-10-2002 à 15:44:25