11
votes

JBoss 7: Comment charger de manière dynamique des pots

J'utilise JBoss 7 (la charge de dépendance a été modifiée dans cette version). Mes applications de guerre téléchargent des pots de serveur et doivent utiliser des classes à l'intérieur, mais il obtient ClassNotFoundException . Je ne trouve donc pas un moyen d'ajouter des dépendances JAR à des modules de manière dynamique - manifeste.mf , jboss-déploiement-structure.xml est une façon statique de le faire. < / p>


2 commentaires

Vous mentionnez que la charge de dépendance a été modifiée pour JBoss 7. Avez-vous fait cela en utilisant des versions antérieures de JBoss? Pouvez-vous décrire votre approche précédente?


Je présume que Cette documentation peut être utile


3 Réponses :


5
votes

Il suffit de reformuler la question pour vous assurer que je sonte correctement;

Vous voulez pouvoir télécharger un fichier jar arbitraire sur le serveur, puis utiliser les classes / ressources contenues dans la JVM? Sans redémarrer le JVM et / ou éditer votre configuration de parcours.

Si c'est le cas, vous devez charger le bocal dans un chargeur de classe (enchaînant votre chargeur de classe actuel si nécessaire), puis chargez la classe de là. < / p>

supposant que vous stockiez physiquement le fichier jar sur le serveur, vous pouvez par exemple faire quelque chose comme: xxx

ps. C'est du code brut, je n'ai même pas compilé ni le tester; Il devrait travailler, mais rien de plus que cela et il y a la chance d'avoir négligé quelque chose ou fait une faute de frappe; -)

PPS. Autoriser les fichiers de jar personnalisés à télécharger et les classes à partir de celui-ci à exécuter apportent un certain nombre de risques (sécurité) avec celui-ci.


1 commentaires

J'aime cette réponse mais ne pas - aborder la question. La différence finalement entre définir une dépendance dans JBoss via Manfiét / jboss-déploiement-Structure.xml est qu'il effectue implicitement toutes les classes que vous dépendez de la disponibilité de votre chargeur de classes d'application, sans que vous n'ayez pas besoin de les nommer et de les classer expressément. Cela bénéficie de l'utilisation de tous les systèmes blackbox que vous contrôlez à la main (envoi au gestionnaire JSP, etc.) aura également accès à ces classes (s'ils ont commencé avec le même chargeur de classes de l'application du déploiement).



0
votes

@rage: Cette question sur Stackoverflow a demandé plus tôt pourrait vous donner des intrants comment organiser des pots: que ce soit votre propre bocal ou des bocaux tiers.


0 commentaires

0
votes

Essayez ceci (je l'ai attrapé quelque part sur Internet): xxx

avec cette méthode: xxx

et avec Cet exemple d'appel: xxx

un bit hacky, mais peut-être qu'il fonctionne ... IT Runtime ajoute tous les fichiers JAR disponibles dans le répertoire de données ou de tests / données à la classe d'exécution.


0 commentaires