[oracle][servlet][xml] classdefnotfound sans raison

classdefnotfound sans raison [oracle][servlet][xml] - Java - Programmation

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.

Reply

Marsh Posté le 29-06-2006 à 12:18:49   

Reply

Marsh Posté le 29-06-2006 à 13:53:30    

t'as un répertoire WEB-INF/lib avec ton jar oracle dedans ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

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.

Reply

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 ;-)


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

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.

Reply

Marsh Posté le 29-06-2006 à 15:13:31    


Citation :


Je comprend pas pourquoi quand j'utilise une methode de XMLTYPE il ne trouve pas Oradata qui est pourtant
 


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.


Message édité par brisssou le 29-06-2006 à 15:14:18

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

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...

Reply

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)


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

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 ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed