Est-ce que quelqu'un sait-il obtenir de manière programmable la voie absolue dans le système de fichiers d'une oreille déployée dans JBoss, du code Java dans la même oreille? P>
J'en ai besoin parce que je veux copier certains fichiers à l'intérieur de l'oreille dans une autre partie du système de fichiers, sur le déploiement de temps. P>
Merci tout le monde! p>
5 Réponses :
Ceci est assez fidèle, mais vous pouvez le faire en interrogeant le MAINDEPEPORIER JBoss CODE> MBEAN. Le MBean se trouve à Nice, hein? Vous pouvez utiliser l'API JMX RAW pour le faire, mais le printemps fournit un mécanisme beaucoup plus agréable, à l'aide d'un J'aimerais trouver une manière plus simple, mais c'est le meilleur que j'ai trouvé jusqu'à présent. P> JBoss.System: Service = MainDeployer CODE>, et a une opération JMX
listDeployments code>. Cela renvoie une collection d'objets code> déploymentinfo code>, dont l'un sera votre déploiement d'oreille. Ce déploiementInfo a une propriété code> URL code> un fichier
fichier: // code> url décrivant votre répertoire de déploiement. P>
MBeanProxyFactoryBean code> pour exposer une instance de
MaindeployMbean code>. P>.
Merci pour ton aide! Cependant, il n'a pas fonctionné dans mon cas: J'utilise de la maquette avec JBoss, et j'ai besoin de ce code pour fonctionner à partir d'une méthode annotée comme @OBserver ("org.jboss.sam.postinitialisation"), appelée quand une application de couture commence. À ce stade, je recevrais un MaindeployMbean qui rapportait: 0 Earles déployées, 0 incomplète et 0 attente de déploiement ...
Ces ressources sont-elles mappées ou mises à disposition sous une voie Web (dans une guerre)? P>
Si tel est le cas, vous pouvez tenter d'utiliser servleContext.geterrealpath () code>
pour traduire le chemin virtuel sur le chemin de réel / FileSystem. P>
Merci pour ton aide! Cependant, cela ne fonctionnait pas dans mon cas: comme je l'ai dit dans un autre commentaire, j'utilise cela dans le démarrage de la couture. Je n'ai pas pu trouver un moyen d'obtenir un servletContext à ce stade (cela reviendrait comme null).
Je fais de cette façon.
L'oreille a un service myservice, où je travaille avec le contenu de l'oreille:
Je pourrais utiliser un moyen plus simple, car la classe où j'ai besoin de ce chemin, je suis dans l'oreille qui contient la guerre qui contient les fichiers que je veux copier. Donc, j'ai juste besoin de 1 ligne de code: chemin de chaîne = ceci.getclass (). GetClassloader (). GetResource ("my_war_filenam e.war"). GetPath (); Merci!
Pour obtenir le disponible dès que la couture a créé le servleContext code> de la couture, vous pouvez faire:
ApplicationContext code> . Et ensuite
GetRealPath ("/") code> fonctionne bien pour le dossier de déploiement de contexte racine. Toute structure de dossiers dans la racine de contexte peut être atteinte. P> p>
vous pouvez vous faire "System.getProperty ()" Voici le lien pour d'autres Propriétés que vous pouvez utiliser
ex: p> résultat p> après avoir besoin d'ajouter " / Déploiements / VOTRE_PROJECT_EAR /..." / CODE> P> P>
Une solution simple et propre, très utile!