classdefnotfound sans raison [oracle][servlet][xml] - Java - Programmation
Marsh Posté le 29-06-2006 à 14:02:23
Oui, oui, j'utilise eclipse et le plug in WTP pour gérer mon servlet et j'ai bien les jar oracle
dans ce repertoire. Mais ça me paraitrait bizarre que cela soit un probleme de classpath
car lorsque je déclare ma variable XMLTYPE ça passe mais quand je veux utiliser une methode
du genre XMLTYPE.createxml(...) c'est là que ça plante. Surtout que j'ai oublié de le préciser
mais si c'est un autre type que XMLTYPE (int par exemple)que je veux récupérer ça marche trés bien.
Marsh Posté le 29-06-2006 à 14:21:49
essaye ça : ctrl+maj+t et cherche ORAData. Tu verras en bas de la fenêtre dans quel jar tu trouves cette classe. Vois ensuite si ce jar est vraiement dans le classpath de ton appli web.
et de toute façon, c'est sûr, c'est un problème de classpath ;-)
Marsh Posté le 29-06-2006 à 14:56:58
Merci pour ton aide.
Oradata se trouve dans ojdbc14.jar, qui est reconnu puisque j'arrive a interagir avec oracle.
J'ai découvert qu'en fait ORAdata est une interface qui interface la classe XMLTYPE qui se trouve dans xdb.jar.
Je comprend pas pourquoi quand j'utilise une methode de XMLTYPE il ne trouve pas Oradata qui est pourtant
dans un jar reconnue...c'est un peu de la science fiction.
Marsh Posté le 29-06-2006 à 15:13:31
Citation :
|
il essaye de manipuler un objet dont il ne reconnait pas le type dans la méthode en question. Tant que tu ne l'appelles pas, pas de soucis.
Marsh Posté le 29-06-2006 à 15:28:32
Ok je vois ce que tu veux dire, quoiqu'il en soit ce la ne marche toujours pas
au niveau du classpath, j'ai déja essayé d'inclure les jar (enfin quand je dis "jar" c surtout le xdb.jar qui gere
les XMLTYPE vu que le ojdbc14.jar semble marcher correctement, je l'ai inclus dans jboss à l'aide d'une
manip pour indiquer quelle jdbc on utiliser)dans le WEB-INF/lib ça marche pas, j'ai essayé dans les propriétés
du projet d'indiquer la dépendance et de mettre les jar à la main dans JBOSS ça marche pas non plus, il parait qu'il suffit
de mettre les librairies dans un repertoire particulier de jboss pour que celui ci fasse son classpath en conséquence mais
pour moi ça marche pas.
je sais plus trop quoi faire...
Marsh Posté le 29-06-2006 à 15:37:01
le répertoire dont tu parles, ça doit être un truc genre lib/ext...
sinon, y a pas mieux... faut juste mettre les jar requis dans WEB-INF/lib ou lib/ext (mais c'est plus dangereux. m'enfin, question de point de vue)
Marsh Posté le 29-06-2006 à 16:21:58
bah je me suis dit que si j'arrive pas à les mettres dans le servlet (.War ou .ear) j'allais les mettre
dans jboss direct. c'est effectivement dans un rep du type /serveur/lib/ où en théorie il prend
les librairies pour mettre à jour son classpath, seulement ça ne marche pas non plus.
Quand à les mettre dans le WEB-INF/lib du servlet, je l'ai fait aussi et ça ne marche toujours pas.
J'ai aussi essayé d'éditer le MANIFEST.MF moi même mais sans résultat.
Il y a surement quelque chose que je fais mal mais quoi ?
Marsh Posté le 29-06-2006 à 12:18:49
Bonjour,
Cela doit etre une bétise, mais je bloque dessus depuis trop longtemps.
alors j'ai un serveur d'appli (JBOSS) dans lequel je déploie un EAR qui contient un servlet, ce servlet se connecte à une base oracle et rapatrie des donnée.
Jusque là tout va bien cependant dès le moment où ces données sont de type XMLTYPE et que je tente de me servir d'une method de XMLTYPE j'obtiens une erreur
"java.lang.NoClassDefFoundError: oracle/sql/ORAData"
à la ligne où je tente d'y avoir acces.
Je suppose que c'est un probleme de déploiement avec les librairies qui gerent le XML dans oracle car lorsque je créer une petite appli en stand-alone qui fait la même chose, tout marche bien et je récupere mon XMLTYPE.
Voila c pas compliqué je pense mais j'ai surement raté un truc alors si quelqu'un a une idée il est le bienvenu merci d'avance.