2013-07-16 4 views
22

J'essaie de lire le fichier test1.properties qui se trouve dans un dossier externe.Ajout d'un répertoire au classpath de tomcat et lecture du fichier de propriétés au printemps

ici est mon fichier de configuration de printemps:

<bean id="propertyConfigurer3" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="ignoreUnresolvablePlaceholders" value="true"/> 
    <property name="locations"> 
     <list> 
      <value>classpath:test.properties</value> 
      <value>classpath:test1.properties</value> 
     </list> 
    </property> 
</bean> 

si je place le test1.properties dans le dossier tomcat7/lib, je suis capable de le lire. Cependant, je veux le placer dans un autre répertoire que tomcat7/env/test1.properties

J'ai ajouté le chemin à l'conf/catalina.properties:

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/env 

Ce son ne fonctionne pas, s'il vous plaît aider


solution: Ok .. enfin fixé .. Je l'avais fait correctement tout ce temps .. c'était mon IDE qui a causé le problème. L'EDI ne détectait pas les modifications dans le fichier catalina.properties. J'ai dû supprimer la configuration du serveur dans mon IDE et le re configurer.

ces liens ont été utiles en général:

+4

Vous pouvez également utiliser le fichier ':' préfixe pour pointer vers un fichier. – Bart

+0

duplication possible de [Problèmes avec classpath entre Eclipse, Tomcat et JUnit dans l'application Spring 3] (http://stackoverflow.com/questions/4179767/problems-with-classpath-between-eclipse-tomcat-and-junit-in- printemps-3-app) –

+0

La question est répondue dans les commentaires. Voir http://meta.stackoverflow.com/questions/251597/question-with-no-answers-but-issue-solved-in-the-comments –

Répondre

1

Utilisez setenv.sh dans le répertoire bin. Si le fichier n'existe pas, créez-le. Pour ajouter quelque chose à l'classpath utilisez la syntaxe suivante:

CLASSPATH=/yourdir/ 

Pour les fenêtres: setenv.bat

0

Si vous avez l'intention de garder le fichier en dehors de la guerre ou de l'oreille, de sorte que vous pouvez mettre à jour sans compling et créer de nouveau la guerre. il suffit d'éditer le fichier et de redémarrer le serveur. Gardez-le dans n'importe quel dossier externe, même en dehors du serveur et donnez un chemin absolu au printemps.

<bean id="propertyConfigurer3" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
<property name="ignoreUnresolvablePlaceholders" value="true"/> 
<property name="locations"> 
    <list> 
     <value>classpath:test.properties</value> 
     <value>**file:/someexteranal/dir/test1.properties**</value> 
    </list> 
</property> 

La meilleure chose, vous pouvez donner à ce/chemin avec root sous Unix/Linux et même fonctionnera dans les fenêtres, il suffit de garder le fichier dans le répertoire où votre serveur est installé. Comme votre tomcat dans le lecteur D, puis gardez-le dans D: \ someexternal \ dir et le code ci-dessus fonctionnera bien là aussi

2

Ok .. enfin fixé .. Je l'avais fait correctement tout ce temps .. il était mon IDE qui a causé le problème. L'EDI ne détectait pas les modifications dans le fichier catalina.properties. J'ai dû supprimer la configuration du serveur dans mon IDE et le re configurer.

ces liens ont été utiles en général:

Ajout d'un répertoire pour tomcat classpath

http://www.mulesoft.com/tomcat-classpath#solutions

Questions connexes