2010-11-22 19 views
3

J'ai une application Web avec des fichiers de configuration dans \WEB-INF\etc\config. Ce dossier contient quelques fichiers de propriétés et un fichier XML. J'ai besoin de mettre en place un chemin vers xml dans un fichier de propriétés. Après l'installation, ce fichier est utilisé pour créer un objet au démarrage du service, cet objet lit les propriétés du fichier. Ainsi, cet objet doit connaître le chemin d'accès à tous les fichiers décrits dans le fichier de propriétés. Comment puis-je décrire le chemin correct dans le fichier de propriétés, si le fichier de propriétés et le fichier XML dans le même répertoire?Chemin WEB-INF pour les fichiers

Merci.

Répondre

5

La pratique normale consiste à placer ces fichiers dans le chemin de classe runtime ou à ajouter son chemin d'accès racine au classpath runtime. Ensuite, vous serez en mesure d'obtenir la ressource par ClassLoader#getResource() ou InputStream par ClassLoader#getResourceAsStream(). Tout ce que vous avez besoin de spécifier dans le fichier de propriétés serait alors le nom complet (l'emplacement du chemin de classe) du fichier .XML.

Si vous insistez vraiment jongler avec les chemins de système de fichiers de disque comme ça, alors vous devez spécifier des chemins relatifs du contenu Web (le dossier où /WEB-INF est situé), puis utiliser ServletContext#getResource() ou ServletContext#getResourceAsStream() pour obtenir la ressource. Cela ajoute cependant une dépendance ServletContext sur votre code en utilisant le fichier XML.

+0

Merci, je comprends ce que vous avez écrit, et mes solutions sont: – jitm

+0

Ajouter dans le chemin de collision et d'analyser à l'exécution en utilisant ServletContext et la deuxième solution est ajouter dans le chemin complet du fichier racine au fichier xml. J'ai choisi la deuxième variante. Merci. – jitm