La façon dont nous traitons ceci:
- Demandez au client de créer un pool de connexion à l'aide d'un GlobalNamingResources nom de la ressource, nous sommes d'accord sur. Le pilote de base de données doit être dans le classpath de Tomcat.
- Notre dossier de guerre comprend un fichier META-INF/context.xml qui a un ResourceLink un lien vers le pool de connexion configurée à l'étape 1.
Ceci est un peu plus haut travail avant que de modifier simplement le contexte. informations de connexion XML directement, mais au fil du temps, il devrait payer. Un serveur de développement serait configuré avec son GlobalNamingResources pointant vers le développement, et un point de serveur de test pour tester etc. Ensuite, le même fichier WAR peut être copié sur chaque serveur sans rien modifier.
Ceci n'utilise pas les fichiers de propriétés, mais je pense que cela permet d'atteindre le même objectif. Permettre à un utilisateur/client de configurer les informations de connexion à la base de données.
Exemple de GlobalNamingResource:
<Resource name="jdbc/dbconnection" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1546:SID"
username="scott" password="tiger" maxActive="8" maxIdle="4"
validationQuery="select 1 from dual"
testOnBorrow="true"/>
Exemple de context.xml dans le fichier de guerre:
<Context path="/MyWebApp" docBase="MyWebApp" debug="5" reloadable="true">
<ResourceLink name="jdbc/dbconnection" global="jdbc/dbconnection"
type="javax.sql.DataSource"/>
</Context>