Dans mon $ Tomcat_HOME/conf/server.xml, j'ai mis ceci près du bas:
...
<Context path="/staticdir" docBase="/filesystem/path/to/static/dir"/>
</Host>
</Engine>
</Service>
</Server>
Je le fais parce que j'ai des fichiers sur mon système de fichiers que je veux que Tomcat serve quand vous allez sur localhost: 8080/staticdir
Mais lorsque je lance l'application dans Intellij-IDEA, le journal Tomcat indique ceci:
Utilisation de CATALINA_BASE: "C:\Users\me.IntelliJIdea11\system\Tomcat\Unnamed_Product_2"
Si je vais dans ce répertoire sur mon système de fichiers et que je regarde le fichier conf/server.xml, il ne contient pas la balise Context
que j'ai insérée. Pourquoi intellij modifie-t-il cela et comment puis-je l'éviter?
J'ai l'impression que j'aurais dû effectuer cette modification dans mon fichier $ Tomcat_HOME/conf/context.xml, mais je ne parviens pas à trouver d'exemples sur la manière d'effectuer cette modification. Si quelqu'un pouvait me montrer un exemple de cela, je considérerais cela comme une réponse, car je remarque qu'intelliJ ne modifie pas ce fichier.
J'ai trouvé une solution de contournement.
Mais je n'aime vraiment pas cela, car lorsque de nouveaux utilisateurs essaient d'exécuter l'application pour la première fois, je ne peux pas imaginer un moyen de détecter qu'ils ont mal fait cette étape.
Voici une photo de ma configuration Tomcat:
Par défaut, IntelliJ IDEA modifie l'environnement CATALINA_BASE
de sorte que Tomcat utilise des fichiers de configuration ajustés pour déployer des applications directement à partir de l'emplacement de sortie de l'artefact. Toutefois, il est possible de remplacer ce comportement et tout configurer manuellement (en modifiant la sortie entrer dans webapps
ou en modifiant la configuration du serveur de la même manière IDEA fait en sorte que le déploiement se produise à partir de la sortie d'artefact standard).
J'avais besoin d'un contexte ROOT dans Tomcat/IntelliJ, donc dans server.xml dans la balise Host, ajoutez un contexte spécifique:
<Context path="" docBase="C:\intranet\app\Tomcat\webapps\ROOT\" reloadable="true" />
Dans intelliJ 11.1.5, dans la case à cocher "Déployer les applications configurées dans l'instance Tomcat" du panneau de l'onglet Serveur, IntelliJ copiera server.xml dans le déploiement du dossier:
C:\Users\{Username}\.IntelliJIdea11\system\Tomcat\Unnamed_Product_2\conf"
Maintenant, je peux accéder aux ressources du domaine racine, par exemple crossdomain.xml:
http://localhost:8080/crossdomain.xml
Dans l'onglet Démarrage/Connexion, ajoutez les données comme indiqué ci-dessous dans la section "Transmettre les variables d'environnement". Redémarrez et c'est tout.
Name Value
------------ -----
CATLINA_BASE {Tomcat Installation directory}
J'ai copié des serveurs et constaté que mes fichiers journaux sont stockés au mauvais emplacement.
Donc, pour le "produit Tomcat", il utilisait en fait catalina.base=".../preprod/..."
J'ai fini par éditer projects/.idea/workspace.xml
qui était à côté de l'endroit où j'ai installé IntelliJ