pb java: servlet XML - Java - Programmation
Marsh Posté le 24-04-2002 à 12:13:28
web-inf/bin ???
tu veux dire lib je suppose ...
Marsh Posté le 24-04-2002 à 12:15:09
oups pardon, me suis tromper, et l environment est windows 2K
Marsh Posté le 24-04-2002 à 12:16:57
probleme de classpath. Relis la doc de tomcat pour t'assurer que tu mets le jar au bon endroit et redémarre tomcat.
[jfdsdjhfuetppo]--Message édité par DarkLord le 24-04-2002 à 12:17:58--[/jfdsdjhfuetppo]
Marsh Posté le 24-04-2002 à 12:21:12
si je ne le mettais le jar au bon endroit il devrait planeter avant lorsqu il appel la classe DocumentBuilder (voir meme avant au moment ou il appel la classe documentBuilderFactory) org.apache.xerces.jaxp.DocumentBuilderImpl.newDocument(DocumentBuilderImpl.java:181)
N est tu pas d accord?
Marsh Posté le 24-04-2002 à 13:23:22
titou078 a écrit a écrit : si je ne le mettais le jar au bon endroit il devrait planeter avant lorsqu il appel la classe DocumentBuilder (voir meme avant au moment ou il appel la classe documentBuilderFactory) org.apache.xerces.jaxp.DocumentBuilderImpl.newDocument(DocumentBuilderImpl.java:181) N est tu pas d accord? |
Qu'est ce que j'en sais moi. Je n'ai meme pas vu ton code!
Marsh Posté le 24-04-2002 à 17:25:31
décompile le xerces.jar et regarde si la classe est dedans ...
Marsh Posté le 24-04-2002 à 17:32:17
titou078 a écrit a écrit : J utilise comme parseur xml xerces2, j ai un fichier xerces.jar que j ai mis dans le repertoire Web-inf/bin, mais je ne comprend pas trop pq il plante car il y a la classe org/w3c/dom/ranges/DocumentRange dans le jar |
Benou >>> Déjà fait
Marsh Posté le 24-04-2002 à 17:36:40
DarkLord a écrit a écrit : Benou >>> Déjà fait |
oups ... j'ai lu trop vite ...
pas d'idée dans ce cas là.
Une remarque quand même. Si y a bien un truc que j'aime pas avec tomcat c'est la gestion du classpath.
Marsh Posté le 25-04-2002 à 00:00:47
Je confirme l'idée de Dark : ça pue le classpath, ça!!
Vu que c'est Apache qui appelle la servlet, et que ton DocumentBuilder est dans le package
org.apache.xerces.jaxp
ben il se peut très bien que DocumentRange ne soit pas dans ton classpath.....
Marsh Posté le 25-04-2002 à 09:47:43
bah, vu que tu utilises Tomcat, il suffit de mettre les .jar que tu veux utiliser dans web-inf/lib...
Essaie de faire un
jar -tf werces2.jar
pour voir si il contient la classe org/w3c/dom/ranges/DocumentRange
Si ce n'est pas le cas, c'est qu'il te ma,que un package.
Marsh Posté le 25-04-2002 à 09:54:09
normalement il y est, j ai moi meme crée le jar a partir des sources, et je vois apparaitre l interface avec forte lorsque je monte la jar, et qe je regarde les classes, j ai pas de pb avec forte
Marsh Posté le 25-04-2002 à 10:00:13
titou078 a écrit a écrit : normalement il y est, j ai moi meme crée le jar a partir des sources, et je vois apparaitre l interface avec forte lorsque je monte la jar, et qe je regarde les classes, j ai pas de pb avec forte |
oui mais bon en attendant ca ne fonctionne pas. Si en plus c'est toi qui a crée le jar ...
Marsh Posté le 25-04-2002 à 10:25:24
ouai bon ba je crois que je vais essayer de recréer le jar, de toute facon j ai rien a perdre
Marsh Posté le 25-04-2002 à 10:45:24
Bon ba pour une raison inconnue, le jar devait etre un peu merdique, je viens de le recréer et ca fonctionne, aller savoir pq.
MErci a tous pour vos reponses
Marsh Posté le 25-04-2002 à 10:47:47
titou078 a écrit a écrit : Bon ba pour une raison inconnue, le jar devait etre un peu merdique, je viens de le recréer et ca fonctionne, aller savoir pq. MErci a tous pour vos reponses |
merci à toi de nous avoir fait perdre notre temps sur des choses aussi bêtes. Si tu avais dit dès le début que tu avais fait le jar toi même ...
Marsh Posté le 25-04-2002 à 11:16:27
je l ai pas fait moi meme, j avais un pb avec jes jar fournit par xerces, j ai recuperer les source et j ai recréer les jar avec les outils fournit avec et ca merdait, comment voulait tu que je sache qu il fallait recréer les jar a la main? Je suis pas expert java, et je suis meme que stagiaire(avec personne pour m aider) alors je fais ce que je peux
Marsh Posté le 25-04-2002 à 11:27:18
bin justement il ne faut pas recréer les jar à la main. C'est même contraire a certaines licenses, même open source.
Tu dois utiliser les jar tels quel et si ils proviennent du site web officiel tu ne dois nullement les recompiler.
Marsh Posté le 25-04-2002 à 11:30:13
titou078 a écrit a écrit : je l ai pas fait moi meme, j avais un pb avec jes jar fournit par xerces, j ai recuperer les source et j ai recréer les jar avec les outils fournit avec et ca merdait, comment voulait tu que je sache qu il fallait recréer les jar a la main? Je suis pas expert java, et je suis meme que stagiaire(avec personne pour m aider) alors je fais ce que je peux |
on le remarque sur programmation kan les stages commencent
Marsh Posté le 25-04-2002 à 11:30:22
a bon, ca je savais pas, j ai recuperer leurs sources, j ai utiliser leur script pour tout recompiler et generer les jar, et comme ca merdait, j ai pris les .class generer avec leur script, pis j ai generer le .jar, perso je vois pas ou est le pb, mais je vais verifier le licence, merci.
Marsh Posté le 25-04-2002 à 11:34:16
le problème avec la license c'est que des jar de projets séparés doivent rester séparés. Par exemple tu ne peux pas compiler xerces et xalan dans un seul jar. Tu es obligé de laisser deux jar séparés.
Quand a ton histoire de source je ne comprends toujours pas. Le jar est dispo sur le site et il est déjà compilé et tout ... C'est quelle libraire exactement?
Marsh Posté le 25-04-2002 à 11:45:41
Xerces-J-src.2.0.1
j avais recuperer les binaire, et les sources, en utilisant leur script je n obtient pas les meme jar, que les jar des fichiers binaire, la deja je comprend pas trop mais bon.
Honnetement je comprend pas pq ca fonctionne pas alors que les jar on l air d etre identique( a part la taille), y a forcement une difference mais ou?
Honnetement je comprend pas trop, le jar de xerces est fait a partir de 2 repertoire, org et javax, j ai pris ces 2 repertoires(avec les fichiers compilé) et j ai créer mon jar comme ca.
Et y a une difference de taille de presque 1Mo, ancin=1,77Mo nouveau 2.6Mo
Enfin bref tout ca pour dire que je comprend pas trop ce qu il font, c est peu etre une histoire de version entre les differents outils
Marsh Posté le 25-04-2002 à 13:29:59
titou078 a écrit a écrit : Xerces-J-src.2.0.1 Enfin bref tout ca pour dire que je comprend pas trop ce qu il font, c est peu etre une histoire de version entre les differents outils |
De manière générale si tu utilises une api tu n'en as rien à caler des sources. Tu descends la version binaire, y a les jar tout fait dedans et tu les utilises tel quel et ca marche!
Quelle complication !
Marsh Posté le 25-04-2002 à 14:12:22
la c est pas le cas, et je viens de la retester, il doit y avoir un pb de version ou autre chose enfin je sais pas
Marsh Posté le 25-04-2002 à 14:49:40
titou078 a écrit a écrit : la c est pas le cas, et je viens de la retester, il doit y avoir un pb de version ou autre chose enfin je sais pas |
moi non plus
Marsh Posté le 24-04-2002 à 12:10:44
Voici le message d erreur que j obtiens lorsque je lance ma servlet:
root cause
java.lang.NoClassDefFoundError: org/w3c/dom/ranges/DocumentRange
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1631)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:926)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1243)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
at org.apache.xerces.jaxp.DocumentBuilderImpl.newDocument(DocumentBuilderImpl.java:181)
at AskMAJ.doGet(AskMAJ.java:72)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.in
ternalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
at java.lang.Thread.run(Thread.java:536)
J utilise comme parseur xml xerces2, j ai un fichier xerces.jar que j ai mis dans le repertoire Web-inf/bin, mais je ne comprend pas trop pq il plante car il y a la classe org/w3c/dom/ranges/DocumentRange
dans le jar( c est une interface), il plante lors de l'instruction suivante:
doc=docBuild.newDocument();
Si quelqu un pouvait me filer un coup demain se serait super sympa, parce que la je seche.
Merci d avance