2016-02-25 1 views
0

Un fichier war fourni en externe inclut sa configuration dans le répertoire WEB-INF. J'essaie de faire en sorte que Tomcat fournisse à l'application web un répertoire WEB-INF alternatif, afin que je puisse mettre la configuration sous contrôle de version et ne pas avoir à modifier le fichier war. De nouvelles versions du fichier de guerre seront fournies périodiquement. Donc, ce que je veux faire, c'est copier le contenu WEB-INF en dehors de Tomcat, le mettre sous contrôle de version, puis dire à Tomcat (8 pour l'instant, mais nous pouvons passer à 7) pour utiliser ce externe répertoire comme son WEB-INF. De cette façon, un nouveau déploiement utilisera automatiquement l'ancienne configuration et les modifications apportées à la configuration ne seront pas perdues.Pouvez-vous avoir WEB-INF en dehors de la webapp?

(je suis en fait l'intention d'avoir la configuration en tant que déployable/« webapp » et laissez jenkins séparé poignée, donc personne n'a jamais accéder au serveur userspace directement. Mais ce n'est pas pertinent à la question, je pense J'ai regardé autour de moi et mes meilleures idées semblent se concentrer sur le contexte et les ressources fournies par Tomcat, mais je ne suis pas certain que ce soit réellement possible. Ces fichiers peuvent fournir une configuration externe pour des applications spécifiques, donc je pense que c'est l'endroit par où commencer. Voici ma tentative:

<Context> 
    <Resources> 
    <PreResources className="org.apache.catalina.webresources.DirResourceSet" 
        base="/home/tomcat/webapps/config/conf" webAppMount="/WEB-INF" /> 
    </Resources> 
</Context> 

J'ai essayé un autre répertoire aussi bien, en dehors de webapps, mais ça ne fonctionnait pas non plus. Quelqu'un sait pourquoi cela ne fonctionne pas? Est-ce juste une chimère, serai-je obligé soit de modifier les fichiers de guerre, soit de faire le "stop-stop" recommandé par le mainteneur - "patch in" config-start?

Répondre

0

Il semble que ce qui précède fonctionne bien. Je voudrais juste mettre une lettre dans le chemin de base comme plus bas plutôt que majuscule.

Un de ces cas où le problème a été résolu au moment où une autre personne a regardé ce que j'avais réellement écrit.

Mods; N'hésitez pas à supprimer la question ou à la laisser comme un message d'aide pour quelqu'un qui cherche comment résoudre le même problème à l'avenir.