26 votes

Ajout d'un répertoire au classpath de tomcat et lecture du fichier de propriété dans spring

J'essaie de lire le test1.properties qui se trouve dans un dossier externe.

Voici mon fichier de configuration de Spring :

<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 tomcat7/lib Je suis en mesure de le lire. Cependant, je veux le placer dans un autre répertoire comme tomcat7/env/test1.properties

J'ai ajouté le chemin d'accès au fichier conf/catalina.properties :

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

Cela ne fonctionne pas, merci de m'aider


solution : Ok, je l'ai finalement réparé Je l'ai fait correctement pendant tout ce temps c'est mon IDE qui a causé le problème. L'IDE ne prenait pas en compte les changements dans le fichier catalina.properties fichier. J'ai dû supprimer la configuration du serveur dans mon IDE et la configurer à nouveau.

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

4voto

Andrés Points 794

Ok, je l'ai finalement réparé Je l'ai fait correctement pendant tout ce temps c'est mon IDE qui a causé le problème. L'IDE ne prenait pas en compte les changements dans le fichier catalina.properties. J'ai dû supprimer la configuration du serveur dans mon IDE et la configurer à nouveau.

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

Ajouter un répertoire au classpath de tomcat

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

3voto

Neomusashi Points 329

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

CLASSPATH=/yourdir/

Pour Windows : setenv.bat

Solution : la création du fichier setenv.bat dans le dossier bin de tomcat m'a aidé sous Windows.

0voto

Panther Points 1599

Si vous avez l'intention de garder le fichier en dehors de la guerre ou de l'oreille, vous pouvez le mettre à jour sans avoir à compiler et à créer à nouveau la guerre, en éditant simplement le fichier et en redémarrant le serveur. Gardez-le dans n'importe quel dossier externe, même en dehors du serveur et donnez le chemin absolu dans spring.

<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, c'est que vous pouvez donner ce chemin / avec Root dans Unix/linux et la même chose fonctionnera dans Windows, il suffit de garder le fichier dans le répertoire où votre serveur est installé. Par exemple, si votre serveur est installé sur le disque D, vous devez le conserver dans le répertoire D:\someexternal\dir et le code ci-dessus fonctionnera également

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X