Où mettre une bibliothèque partagée dans JBoss as 5?
Je suis nouveau sur Jboss, mais j'ai plusieurs applications web de chacun à l'aide de spring-hibernate et d'autres bibliothèques open source et des portlets, donc en gros maintenant chaque fichier war comprend les fichiers jar. Comment puis-je déplacer ces jarres à un lieu commun de sorte que je n'ai pas à les mettre dans chaque fichier war? Je suppose que l'emplacement est server/default/lib
, mais je ne suis pas sûr.
Aussi, comment est-il différent d'avoir ces bocaux à WEB-INF/lib
vs JBOSS/server/default/lib
? Vais-je faire face à toute classloader problème?
Aussi j'ai statique des données stockées dans les champs statiques comme Singleton
, est-ce être partagés entre tous les fichiers WAR?
OriginalL'auteur Tushar Khairnar | 2010-01-21
Vous devez vous connecter pour publier un commentaire.
Classloading:
Vous avez raison, mettre le
.jar
s àJBOSS/server/<configuration>/lib
, ouJBOSS/lib
.JBoss as est livré avec livré Hibernate libs qui sont testé avec cette version.
Voir
jboss-6.0.0-SNAPSHOT\server\default\conf\jboss-service.xml
:Voir aussi:
Différence entre
WEB-INF/lib
etJBOSS/server/default/lib
:Libs dans
WEB/lib
venez avec votre GUERRE et ne sont visibles qu'à l'intérieur de cette GUERRE.Si vous avez un autre module, par exemple, EJB, ils ne seront pas visibles depuis et vous obtiendrez
ClassNotFoundException
ou (si vous avez la classe en plusieurs endroits)ClassCastException
.Libs dans
JBOSS-AS/server/<config>/lib
sont visibles pour tout le serveur, donc toutes les applications déployées et de leurs modules. Cependant (IIRC) ils n'ont pas la priorité, donc, si vous apporter que des lib par exemple, dans une GUERRE, mais pas dans le fichier EJB-jar, vous pouvez vous retrouver à l'aide de deux versions différentes, ce qui est indésirable (conduira probablement à cetteClassCastException
).Comportement de chargement de classe peut être modifié de plusieurs façons, par exemple Wiki de JBoss.
Données statiques:
Ne pas compter sur les champs statiques en Java EE, qui apporte des ennuis. Par exemple,. la même classe peuvent être chargés par les différents chargeurs de classes, il va donc y avoir plusieurs instances de ces valeurs statiques.
Si vous souhaitez partager des données entre plus de Guerres, de l'utilisation d'un stockage externe - une base de données, un fichier (avec la synchronisation si vous écrivez), JBoss Cache, etc.
OriginalL'auteur
http://www.mastertheboss.com/en/jboss-server/211-configuring-jboss-shared-libs.html
OriginalL'auteur
JBOSS/server/default/lib fonctionne très bien.
Tous les bocaux dans ce dossier sera chargé dans JBoss.
OriginalL'auteur
En vertu de la balise, vous trouverez
Ajouter un nouveau chemin de classe de la balise ci-dessous comprennent les sharedlib dossier sur votre machine locale
Remarque: assurez-vous d'inclure le fichier de protocole à base de code
OriginalL'auteur