2009-10-21 7 views
5

J'ai un tas de fichiers de configuration printanés, qui résident tous sous le répertoire META-INF dans différents sous-packages. J'ai utilisé l'importation comme le suivant ...Chemin d'accès relatif dans la ressource de chemin de classe de ressort

<import resource="../database/schema.xml"/> 

Donc un chemin relatif du fichier source. Cela fonctionne correctement lorsque je travaille avec une version locale en dehors d'un fichier jar. Mais quand je range tout dans un pot, j'obtiens une erreur qui ne peut pas résoudre la ressource d'URL. Si je change le dessus en un chemin absolu (avec classpath :) alors ça marche bien.

Y a-t-il un moyen d'utiliser des chemins relatifs avec ".." lorsque les configs sont empaquetées dans un pot ou suis-je limité aux chemins relatifs descendants et aux chemins absolus seulement?

Merci.

Répondre

5
<import resource="classpath:database/schema.xml"/> 
+0

Il doit être mais cela ne fonctionne pas. –

+0

Hm ... Vous devez l'avoir dans META-INF? – Trick

+1

Pas nécessairement, mais j'en ai besoin emballé dans le pot afin que les utilisateurs du pot ramasser la config avec elle. –

13

Une courte ajout: Si vous voulez accéder aux ressources d'un pot, il faut lire:

<import resource="classpath*:database/schema.xml"/> 
+1

L'astérisque! C'est ce qui me manquait. –

4

Ce qui fonctionne très bien sur mon projet est les lignes suivantes dans l'application-servlet.xml :

<!-- Database Configuration --> 
<import resource="classpath*:/database/DataSource.xml"/> 
<import resource="classpath*:/database/Hibernate.xml"/> 

Directories

Si cela peut vous aider ...