Lorsque vous utilisez la source de données fournie par Tomcat à partir d'une application Web, décrivez les paramètres de la source de données dans context.xml. Dans cet article, je vais vous montrer comment changer context.xml pour chaque développeur lorsque vous démarrez et développez Tomcat à l'aide du WTP (Web Tools Plugin) d'Eclipse.
Si vous voulez savoir comment le faire rapidement, veuillez consulter [Méthode de commutation](méthode #Switching).
Il existe deux emplacements principaux pour context.xml.
META-INF / context.xml``` sous l'application Web
$ CATALINA_BASE / conf / context.xml``` dans le répertoire d'installation de Tomcat(Référence: Apache Tomcat 8 Configuration Reference (8.5.32) --The Context Container)
Chacun a les caractéristiques suivantes, mais il y a des avantages et des inconvénients.
META-INF / context.xml` `` ** est modifié manuellement et commis accidentellement. Fréquemment **.--Cliquez ici s'il est basé sur l'idée que la source de données est fournie par le serveur d'application. --context.xml n'est pas soumis à la gestion de la configuration.
Surtout lorsque chaque développeur développe en déployant sur Tomcat sur Eclipse tout en utilisant sa propre base de données de développement pendant le développement, comment faire de context.xml une cible de gestion de la configuration et la changer en fonction de l'environnement Présenter.
Tous les fichiers qui décrivent les paramètres de source de données pour chaque développeur sont gérés par Git et la commutation est effectuée à l'aide de liens symboliques. Le lien symbolique est un paramètre WTP et doit être déployé sous META-INF.
Le context.xml qui décrit les paramètres de la source de données pour chaque développeur est placé sous le répertoire context / user '' avec le nom de fichier
context_login user name.xml ''. Ceci est géré par Git. Le nom d'utilisateur de connexion est le nom d'utilisateur de connexion Windows (variable d'environnement ``% USERNAME% ''). Dans l'exemple ci-dessous, alice, bob et charlie sont les noms d'utilisateur de connexion du développeur. De cette façon, créez autant de fichiers qu'il y a de développeurs.
Chaque développeur configure la source de données en créant un lien symbolique vers son propre context_login username.xml '' en tant que
context / META-INF / context.xml ''. Réalise la commutation.
Créez de nouveaux répertoires context / META-INF '' et
context / user '' sous le projet Eclipse.
context/meta-inf
Le contenu de se trouve dans l'application Web selon les paramètres décrits ci-dessous.meta-inf
Il sera déployé en dessous.
context/Le contexte pour chaque développeur mentionné ci-dessus sous utilisateur_***.Placez le fichier xml. Aussi, un fichier batch pour créer des liens symboliques(Voir ci-dessous)Place également.
(Répertoire racine du projet) ┊ ├ context │ ├ META-INF │ │ ├ .gitignore │ │ └ context.xml ← <setup-context.Un lien symbolique créé par bat. Non géré par Git> │ │ │ └ user │ ├ setup-context.bat ← <Fichier batch pour créer des liens symboliques(Voir ci-dessous)> │ ├ context_alice.xml ← <Un contexte qui décrit les paramètres de la source de données d'Alice.xml> │ ├ context_bob.xml ← <Contexte décrivant les paramètres de la source de données Bob.xml> │ └ context_charlie.xml ← <Un contexte qui décrit les paramètres de la source de données Charlie.xml> ┊
#### **`context_***.Le contenu de xml est le contexte suivant.Dans le xml lui-même, ne modifiez que la destination de la connexion selon le développeur.(Ci-dessous un exemple dans MySQL)`**
context_***.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/webapp" docBase="webapp" crossContext="true" reloadable="true" debug="1">
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://hôte:3306/Nom de la base de données"
username="Nom d'utilisateur" password="mot de passe"
maxIdle="10" defaultAutoCommit="false" />
</Context>
setup-context.bat est un fichier batch permettant de créer des liens symboliques pour une création facile. Le développeur clone le projet, puis exécute ce fichier de commandes. installer-context.chauve souris%USERNAME%Voir le contexte_Nom d'utilisateur connexion.Contexte un lien symbolique vers xml/META-INF/context.Il sera créé au format xml.
Ce lien symbolique est le seul fichier qui change pour chaque développeur. Ce lien symbolique est hors du contrôle Git comme décrit ci-dessous, il n'y a donc aucun conflit.
## Définir des liens symboliques hors de la gestion Git
En raison des spécifications de Git, l'entité du lien symbolique est enregistrée dans le référentiel, de sorte que `` `` context / META-INF / context.xml '' '' est exclu de la gestion Git. Par conséquent, créez `` `` context / META-INF / .gitignore``` comme suit.
#### **`.gitignore`**
```python
/context.xml
Configurez le projet dans Eclipse comme suit: En conséquence, lorsque Tomcat est démarré avec WTP, les fichiers sous
context / META-INF /
seront copiés sous `` META-INF ''
de l'application Web.
Ouvrez les propriétés du projet dans Eclipse et ouvrez l'assemblage de déploiement.
Appuyez sur le bouton "Ajouter ..." et sélectionnez "Dossier" dans la nouvelle directive d'assemblage.
Sélectionnez le répertoire
context / META-INF``` et spécifiez `META-INF /`
pour le chemin de déploiement pour enregistrer vos paramètres.
Maintenant, lorsque vous démarrez Tomcat en utilisant WTP,
context.xml``` (en fait
context _ ***. Xml` ) selon le développeur sera
`` WEB-INF / Il est déployé sous «» et peut changer les paramètres de la source de données.
setup-context.Créez une chauve-souris avec le contenu suivant. En substance, vous créez simplement un lien symbolique avec la commande mklink. Si le lien symbolique existe déjà, nous vous demanderons confirmation et le remplacerons.
#### **`setup-context.bat`**
```python
@echo off
set CONTEXT_DIR=..\META-INF
set CONTEXT_FILE=context.xml
%~d0
pushd %~p0
set USER_CONTEXT_DIR=%~p0
for %%I IN ( %USER_CONTEXT_DIR:~0,-1% ) do set "USER_CONTEXT_DIR=%%~nI"
cd %CONTEXT_DIR%
if not exist %CONTEXT_FILE% goto :MAKELINK
set /P INPUT="[WARNING] %CONTEXT_FILE%Existe.Supprimer Êtes-vous sûr de vouloir? (y/n)"
if not %INPUT%==y goto :END
del %CONTEXT_FILE%
:MAKELINK
mklink %CONTEXT_FILE% ..\%USER_CONTEXT_DIR%\context_%USERNAME%.xml
:END
popd
pause
Vous pouvez maintenant opérer dans le flux suivant.
context_ <nom d'utilisateur du développeur> .xml`` pour vous y connecter, et ``
context / users Placez-le sous / `` et validez.
context / user / setup-context.bat```. [^ permission]
context / META-INF / context.xml``` est créé sous forme de lien symbolique.
context / META-INF / context.xml` '' est affiché.
context / META-INF / context.xml `` `` est copié sous
`` META-INF``` de l'application Web en fonction des paramètres du projet d'Eclipse et des données Activé comme paramètre source.[^ permission]: À ce stade, si le message "Vous ne disposez pas des privilèges suffisants pour effectuer cette opération" s'affiche, exécutez le fichier batch avec les privilèges d'administrateur.
Il se peut que peu de projets de développement utilisent directement les sources de données Tomcat de nos jours, mais cela peut réduire un peu le stress sur le terrain.
Recommended Posts