J'aimerais enregistrer le port de Tomcat v5.5 dans une variable d'environnement et faire en sorte que Tomcat écoute sur ce port. Jusqu'à présent, le seul moyen que je vois pour changer le port est de modifier $CATALINA_HOME/conf/server.xml. Existe-t-il un moyen de définir la valeur du port en fournissant une valeur externe lors du démarrage de Tomcat ? J'exécute Tomcat sur Solaris.
Réponses
Trop de publicités?Créez un script pour lancer Tomcat. Dans le script de lancement, exportez JAVA_OPTS pour spécifier une valeur pour la propriété Tomcat port.http.nonssl
(vous pouvez appeler cette propriété comme vous le souhaitez).
export JAVA_OPTS=-Dport.http.nonssl=${CATALINA_BASE_PORT}
Comme vous pouvez le voir, j'ai mis port.http.nonssl
à la variable d'environnement ${CATALINA_BASE_PORT}
Le script lance alors Tomcat :
$CATALINA_HOME/bin/startup.sh
Vous devez maintenant modifier le fichier Tomcat $CATALINA_HOME/conf/server.xml
afin que le connecteur HTTP non-SSL utilise le fichier port.http.nonssl
au lieu d'une valeur codée en dur.
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="${port.http.nonssl}" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
Désormais, Tomcat utilisera le port défini dans la variable d'environnement ${CATALINA_BASE_PORT} chaque fois que vous le lancerez via le nouveau script script.
Pour faire suite à la première réponse de Mark MacIver, voici mon fichier start_solr.bat qui spécifie un port et une variable d'environnement :
if "%1" == "" goto displayUsage
set JAVA_OPTS=%JAVA_OPTS% -Dport.http.nonssl=%1 -Dsolr.solr.home=../../
call startup.bat
goto end
:displayUsage
echo.
echo Usage: start_solr.bat [port i.e. 9001]
goto end
:end
cd "%CURRENT_DIR%"
C'est un peu comme utiliser un marteau pour casser une noix, mais vous pourrait utiliser le Tomcat intégré à JBoss, qui dispose d'un mécanisme unifié pour substituer des propriétés système dans des fichiers de configuration arbitraires, y compris le server.xml de Tomcat. Votre variable d'environnement peut être transmise comme une propriété système dans le script de démarrage (en utilisant -D).
JBoss peut être réduit à son noyau et à Tomcat, de sorte que vous n'avez pas besoin d'exécuter tout le jeu de tir. Mais il serait toujours considérablement plus lourd que Tomcat autonome.