Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1952 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JBoss] ClassNotFoundException lors du déploiement d'un WAR

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JBoss] ClassNotFoundException lors du déploiement d'un WAR

n°1749526
el muchach​o
Comfortably Numb
Posté le 20-06-2008 à 20:30:28  profilanswer
 

Bonsoir,
 
J'ai un .war qui se déploie et qui tourne correctement sur un serveur JBoss 3.2.6, mais qui me fait un beau ClassNotFoundException lorsqu'elle est déployée sur un autre serveur JBoss (3.2.6 aussi).
Apparemment, le contenu des .war est identique sur les deux instances. Donc ça ressemble à un problème de Classloader.
 
J'ai fait un peu de travail de recherche la-dessus, sachant que JBoss a une gestion particulière par défaut, les environnements ne sont pas étanches, mais les libs sont partagées.
Je suis tombé la-dessus: http://www.theserverside.com/discu [...] d_id=31630
et sur les liens du bas de la page.
 
Et sinon, un gars a eu le même genre de pb sur ce forum et l'a résolu avec un truc du style de cette page:
http://wiki.jboss.org/wiki/ClassLoadingConfiguration
Mais j'ai pas trop compris comment configurer le jboss-web.xml ou le jboss-app.xml.
 
Quelqu'un a une idée ?


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
mood
Publicité
Posté le 20-06-2008 à 20:30:28  profilanswer
 

n°1749531
verdoux
And I'm still waiting
Posté le 20-06-2008 à 20:40:50  profilanswer
 

La classe en question est sensée être dans quel classloader ?

n°1749564
tempo14
Posté le 20-06-2008 à 22:06:11  profilanswer
 

le liens que tu donne (le wiki) est pour le cas ou tu a une librairie dans ton war et qu'il y a une version différente dans le classpath jboss.Quel est le nom de la "ClassNotFoundException" ??
Est ce une classe dans une librairie que tu distribue dans ton war? Si non c'est juste que l'un des jboss à une lib en plus dans son répertoire lib

n°1749611
el muchach​o
Comfortably Numb
Posté le 21-06-2008 à 09:03:12  profilanswer
 

verdoux a écrit :

La classe en question est sensée être dans quel classloader ?


tempo14 a écrit :

le liens que tu donne (le wiki) est pour le cas ou tu a une librairie dans ton war et qu'il y a une version différente dans le classpath jboss.Quel est le nom de la "ClassNotFoundException" ??
Est ce une classe dans une librairie que tu distribue dans ton war? Si non c'est juste que l'un des jboss à une lib en plus dans son répertoire lib


 
La classe introuvable, c'est (de mémoire)  quelquechose.jdom.Text qui doit se trouver dans jdom-1.0.jar, si je ne m'abuse. Or ce jar se trouve dans le WEB-INF/lib du war à déployer. L'erreur apparait au moment où le framework Spring "instancie" XFire.
 
J'ai fait un 'ls -al | wc' pour m'assurer que le contenu des répertoires WEB-INF/lib est identique, et il me semble avoir fait la même chose pour les libs top level de JBoss.  
Une différence importante entre les deux environnements, c'est que le premier (celui qui marche) inclut un war supplémentaire dans le répertoire de déploiement. D'après ce que je comprends, JBoss a un "universal classloader" qui centralise le contenu des jars des divers wars. Ce qui fait que le war récalcitrant pourrait aller taper chez le voisin.
Du coup, on a tenté une recopie partielle de l'autre war, en recopiant son WEB-INF/lib pour voir, mais ça n'a rien changé.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°1749745
tempo14
Posté le 21-06-2008 à 21:08:49  profilanswer
 

effectivement tous ce qui est dans le même répertoire de déploiement est dans le même "classpath". C'est pratique pour les grosses applications pour déployer la partie web séparé de la partie ejb et de quand même garder des interface "locale" mais ça a des effets de bords et oblige à avoir un répertoire de déploiement "propre". (et c'est même parfois emm..dant pour ceux qui font du JSF 1.1 sur une version récente, on doit changer la partie tomcat...)
 
Donc oui le war supplémentaire ajoute ses librairies, et il pourrai y avoir un "conflit" du style 2 même librairies mais pas même version
 

Citation :

J'ai fait un 'ls -al | wc' pour m'assurer que le contenu des répertoires WEB-INF/lib est identique, et il me semble avoir fait la même chose pour les libs top level de JBoss.  


je suppose que tu veut dire "répertoire de déploiement/lib" , c'est là ou sont les librairies communes.

n°1749787
el muchach​o
Comfortably Numb
Posté le 22-06-2008 à 12:21:45  profilanswer
 

Bon, le problème est résolu. Voilà ce qu'on fait:

 
Citation :

Hi all, From my experience, if you want to make your webapps to behave like with standalone Tomcat, that is, each webapp to use its own classes and/or libraries, just modify jboss-service.xml under JBoss' embbeded Tomcat. By updating JBoss' EARDeployer MBean, you're 1st isolating your deployables, so each one will have its own classloader, and 2nd forcing call by value then. In that cases, performance will decrease 10 times (as per JBoss' forum) whenever you need to call remote classes, since serialization is necessary. Besides, you'll need to provide full scheme JNDI names (jnp://localhost:1099/myComp) for your deployable components. In conclusion, you just need to tell Tomcat "do not use JBoss' UnifiedClassloader and do it as you know", and do not tweak anymore JBoss' setup. It worked fine for me. I hope it's useful... Regards


http://raibledesigns.com/rd/entry/ [...] ader_logic

 

En pratique, on a fait ceci:
<attribute name=”Java2ClassLoadingCompliance”>true</attribute>
<attribute name=”UseJBossWebLoader”>false</attribute>
dansjbossweb-tomcat41.sar/META-INF/jboss-service.xml.
http://wiki.jboss.org/wiki/ClassLoadingConfiguration


Message édité par el muchacho le 22-06-2008 à 12:45:51

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JBoss] ClassNotFoundException lors du déploiement d'un WAR

 

Sujets relatifs
Deploiement appli FlexDiagramme de deploiement UML
Problème de publication d'Eclipse vers JBoss[ANT] Zipfileset et construction de WAR
[C#] Erreur déploiement suite changement de version VS[Web]Demande d'avis sur déploiement frontal web
[RESOLU] EBJ3 + Webservice + Jbossprobleme de persistance avec jboss
probleme avec jboss 4.2[JBoss] Initialisation
Plus de sujets relatifs à : [JBoss] ClassNotFoundException lors du déploiement d'un WAR


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR