2010-09-01 6 views
0

J'ai un fichier jar nommé "xyz.jar" qui contient le fichier "abc.xml" et j'ai un autre fichier avec le même nom "abc.xml" non fourni avec "xyz.jar". Je voudrais avoir le JBoss pour voir le "abc.xml" qui n'est pas empaqueté avec "xyz.jar" en premier lieu avant qu'il voit celui qui est empaqueté avec "xyz.jar". La raison en est que le fichier "abc.xml" placé en externe peut être exposé pour modification et ainsi Jboss peut voir cette modification sans redémarrer le serveur.modifier le chemin de classe Jboss

Comment puis-je y parvenir .. Je veux dire comment puis-je définir le chemin de classe pour Jboss pour voir le "abc.xml" qui n'est pas livré avec "xyz.jar" en premier lieu?

+0

j'ai réalisé ceci .. en utilisant getSystemResource() pour faire le SystemClassLoader pour trouver le fichier de la classe de système path.Else, accéder à la ressource en utilisant getClassLoader(). getResource, si le chargeur de classe système renvoie null – Sukhhhh

Répondre

0

Si vous connaissez l'emplacement de abc.xml sur votre système de fichiers, vous pouvez simplement le charger en utilisant un chemin qualifié complet. Par exemple

final InputStream is = new FileInputStream("/foo/bar/abc.xml"); 
+0

Je recommanderais "getResourceAsStream()" et la lecture du CLASSPATH avant que je dise jamais quelqu'un pour essayer un chemin absolu à partir du système de fichiers. Que faire si le fichier est dans un WAR/EAR? – duffymo

+0

Il existe deux versions de "abc.xml", une est fournie avec "xyz.jar" et l'autre est conservée en externe (besoin de savoir où conserver?). Je voudrais savoir où garder le "abc.xml" qui n'est pas groupé, de cette façon je peux avoir le Jboss pour voir les modifcations ... – Sukhhhh

+0

Oui mais la question est de savoir comment lire un fichier qui est caché par une version qui est sur le classpath, donc si vous obtenez un flux via le classloader, vous aurez le mauvais fichier. –

0

Il ne s'agit pas du chemin de classe JBoss. Cela dépend de la manière dont vous avez choisi d'ouvrir votre ressource abc.xml dans votre fichier xyz.jar

+0

droite .. Je me demande qui " abc.xml "sera chargé en premier? .. cela compte vraiment. Je voudrais avoir le Jboss pour voir les modifications qui se sont produites sur le "abc.xml" qui n'est pas empaqueté avec "xyz.jar" – Sukhhhh

0

Vous pouvez définir classpath pour charger des ressources en éditant JBOSS \ bin \ run.bat Cette ligne vous permet d'ajouter:

if "x%JBOSS_CLASSPATH%" == "x" (
set "RUN_CLASSPATH=%RUNJAR%;your\link\here;" 
) else (set "RUN_CLASSPATH=%JBOSS_CLASSPATH%;%RUNJAR%;your\link\here;" 
) 

puis exécuter run.bat

Questions connexes