web-dev-qa-db-fra.com

Ajouter un répertoire à Tomcat classpath et lire le fichier de propriétés au printemps

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

voici mon fichier de configuration printanière:

<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 souhaite le placer dans un autre répertoire que Tomcat7/env/test1.properties

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

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

Cela ne marche pas


solution: Ok .. finalement corrigé .. Je l'avais fait correctement tout ce temps .. c'est mon IDE qui a causé le problème . Le IDE ne récupérait pas les modifications dans le fichier catalina.properties. Je devais supprimer la configuration du serveur dans mon IDE et la reconfigurer.

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

23
user1561521

Ok… enfin résolu… je le faisais correctement depuis tout ce temps… c'était mon IDE qui causait le problème Le IDE ne récupérait pas les modifications dans le fichier catalina.properties. Je devais supprimer la configuration du serveur dans mon IDE et la reconfigurer.

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

Ajout d'un répertoire au chemin de classe Tomcat

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

2
Andrés

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

CLASSPATH=/yourdir/

Pour Windows: setenv.bat

2
Peter De Winter

Si vous avez l’intention de conserver un fichier en dehors de la guerre ou de la guerre, vous pourrez ainsi le mettre à jour sans vous plier et créer à nouveau une guerre. éditez simplement le fichier et redémarrez le serveur. Conservez-le dans n'importe quel dossier externe, même en dehors du serveur, et indiquez 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 cela fonctionnera sous Windows, il vous suffit de conserver le fichier dans le répertoire où votre serveur est installé . :\someexternal\dir et le code ci-dessus fonctionneront bien là aussi

0
Panther