comment trouver la version tomcat en cours d'exécution


175

J'essaye de faire fonctionner Appfuse + tomcat + jRebel.

Appfuse utilise par défaut Cargo pour télécharger tomcat (ver. 7.0.33) et y déployer l'application. Je souhaite utiliser un tomcat déjà installé (ver. 7.0.27) au lieu de celui téléchargé. J'ai effectué le changement en suivant la FAQ appfuse .

Après avoir déployé avec mvn cargo:run, comment puis-je savoir que le tomcat en cours d'exécution est effectivement 7.0.27?

J'avais l'habitude de taper une mauvaise URL (ex. Localhost: 8080 / dfsfsdf ) pour la voir dans la page d'erreur, mais maintenant elle ne montre rien.

Mes $CATALINA_HOMEpoints à mon propre tomcat 7.0.27. désolé j'ai oublié de mentionner, c'est pour Windows

Mettre à jour:

Étant donné que cette question est devenue en quelque sorte populaire, je voudrais expliquer pourquoi cette réponse a accepté. simple, c'était le premier qui a résolu mon problème.

en regardant le titre de la question, @Tech Junkie et @CPU 100 ont vraiment la meilleure réponse, mais pas pour le scénario que j'ai rencontré. (Je voulais savoir si mvn cargo:runexécute mon tomcat installé ou un tomcat "projet intégré") :)


1
si vous pouvez télécharger un fichier JSP, vous pouvez imprimer des informations comme dans cet exemple: bestdesigns.co.in/blog/check-jsp-tomcat-version
wemu

droite! vous avez la réponse, c'est bien 7.0.27 que je veux. s'il vous plaît poster comme une réponse
Yichaoz

Réponses:


52

si vous pouvez télécharger un fichier JSP, vous pouvez imprimer des informations comme dans cet exemple: bestdesigns.co.in/blog/check-jsp-tomcat-version

Enregistrez ce code dans un fichier appelé tomcat_version.jsp:

    Tomcat Version : <%= application.getServerInfo() %><br>    
    Servlet Specification Version : 
<%= application.getMajorVersion() %>.<%= application.getMinorVersion() %> <br>    
    JSP version :
<%=JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() %><br>

Lorsque vous accédez à http://example.com/tomcat_version.jsp , la sortie doit ressembler à:

Tomcat Version : Apache Tomcat/5.5.25
Servlet Specification Version : 2.4
JSP version: 2.0

517

Bien que ce ne soit pas récent, ai-je pensé, ma réponse peut encore aider les autres:

cd tomcat/lib 
java -cp catalina.jar org.apache.catalina.util.ServerInfo

et c'est tout.

Server version: Apache Tomcat/7.0.30
Server built:   May 23 2013 02:54:10
Server number:  7.0.30.0
OS Name:        Linux
OS Version:     3.13.0-36-generic
Architecture:   amd64
JVM Version:    1.7.0_65-b32
JVM Vendor:     Oracle Corporation

11
pour être un peu plus précis, server / lib serait, par exemple,/opt/tomcat/lib
Kai Carver

4
ou par exemple sur Windows,C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib
Kai Carver

10
travaille toujours en 2017. Sur mon CentOS 7, je dois aller dans / usr / share / tomcat / lib.
Matthieu

Un serveur Solaris 10, j'obtiens une erreur "Exception dans le thread" main "java.lang.UnsupportedClassVersionError: Numéro de version incorrect dans le fichier .class" lorsque j'ai exécuté la commande. Sur RHEL 7.2, j'ai obtenu la sortie correcte.
sv.

5
Cela devrait être étiqueté comme la bonne réponse. Je ne vois pas pourquoi vous devez écrire une JSP et la déployer afin de déterminer la version de tomcat. Cette réponse peut toucher un public plus large, pas seulement les programmeurs, tels que l'administrateur système qui souhaitent simplement connaître la version exacte de Tomcat.
Itherael

99
  1. Essayez d'analyser ou d'exécuter le répertoire Tomcat_home / bin et recherchez un script nommé version.sh ou version.bat en fonction de votre système d'exploitation.
  2. Exécutez le script ./version.shouversion.bat

S'il n'y a pas de version.bat ou version.sh, utilisez un outil pour décompresser les fichiers JAR (\ tomcat \ server \ lib \ catalina.jar) et recherchez dans le fichier org \ apache \ catalina \ util \ lib \ ServerInfo.properties. la version définie sous "server.info =".


désolé j'ai oublié de mentionner, je suis sous Windows. mais le problème est que je ne sais pas vraiment quel dossier est en cours d'
exécution

@Kossel J'ai ajouté plus d'informations pour vérifier votre version mais c'est plus manuel.
grepit le

1
J'ai trouvé la version dans org \ apache \ catalina \ util \ ServerInfo.properties (il n'y avait pas de paquet lib)
Federico Pugnali

49

exécutez le script dans votre tomcat/binrépertoire:

sh tomcat/bin/version.sh

Server version: Apache Tomcat/7.0.42
Server built:   Jul 2 2013 08:57:41
Server number:  7.0.42.0
OS Name:        Linux
OS Version:     2.6.32-042stab084.26
Architecture:   amd64
JVM Version:    1.7.0_21-b11
JVM Vendor:     Oracle Corporation

40

Vous pouvez simplement ouvrir http://localhost:8080/dans votre navigateur Web et cela ouvrira la page d'accueil de Tomcat qui montre la version en cours d'exécution de Tomcat comme ceci:

Apache Tomcat/7.0.42
  • Je suppose que votre Tomcat fonctionne sur le port 8080

12

Utilisation des notes de version

Dans le dossier principal Tomcat, vous trouverez le fichier RELEASE-NOTES qui contient les lignes suivantes (~ ligne 20-21):

                Apache Tomcat Version 8.0.22
                        Release Notes

Ou vous pouvez obtenir les mêmes informations en utilisant la ligne de commande :

  • Windows :

    type RELEASE-NOTES | find "Apache Tomcat Version"

    Production:

                 Apache Tomcat Version 8.0.22
  • Linux :

    cat RELEASE-NOTES | grep "Apache Tomcat Version"

    Production:

                 Apache Tomcat Version 8.0.22

12

La version de Tomcat en cours d'exécution

Si vous définissez la variable d'environnement -% CATALINA_HOME%, alors Windows:

>> cd %CATALINA_HOME%\bin
>> version

Alternativement,

java.exe -cp lib\catalina.jar org.apache.catalina.util.ServerInfo

MON RÉGLAGE --- J'espère que le vôtre sera similaire à ce qui suit

%CATALINA_HOME% --- C:\Program Files\Tomcat\apache-tomcat-8.0.28

PRODUCTION

Version du serveur: Apache Tomcat / 8.0.28 Serveur construit: 7 octobre 2015 18:25:21 UTC Numéro de serveur: 8.0.28.0 Nom du système d'exploitation: Windows 7 Version du système d'exploitation: 6.1 Architecture: amd64 Version JVM: 1.8.0_111-b14 Fournisseur JVM: Oracle Corporation


12
For windows machine 
Go to the tomcat directory C:\apache-tomcat-x.0.xx\bin
    bin>version.bat
    Using CATALINA_BASE:   "C:\apache-tomcat-x.0.xx"
    Using CATALINA_HOME:   "C:\apache-tomcat-x.0.xx"
    Using CATALINA_TMPDIR: "C:\apache-tomcat-x.0.xx\temp"
    Using JRE_HOME:        "C:\Program Files\Java\jdk1.8.0_65"
    Using CLASSPATH:       "C:\apache-tomcat-x.0.xx\bin\bootstrap.jar;C:\apache-tomcat-x.0.xx\bin\tomcat-juli.jar"
    Server version: Apache Tomcat/7.0.53





For Linux Machine 
Go to the tomcat directory /usr/mack/apache-tomcat-x.0.xx/bin
    # ./version.sh
    Using CATALINA_BASE:   /usr/mack/apache-tomcat-x.0.xx
    Using CATALINA_HOME:   /usr/mack/apache-tomcat-x.0.xx
    Using CATALINA_TMPDIR: /usr/mack/apache-tomcat-x.0.xx/temp
    Using JRE_HOME:        /usr/java/jdk1.7.0_71/jre
    Using CLASSPATH:       /usr/mack/apache-tomcat-x.0.xx/bin/bootstrap.jar:/usr/mack/apache-tomcat-x.0.xx/bin/tomcat-juli.jar
    Server version: Apache Tomcat/7.0.56

Si Tomcat est installé en tant que service:

#sudo /etc/init.d/tomcat version

Sur * nix ici. Mon fichier de notes de publication était manquant. L'exécution de la sudocommande a fonctionné pour moi
Kunal

10

Pour connaître la version de Tomcat, recherchez ce fichier - version.sh pour * nix ou version.bat pour Windows. Ce fichier version.sh se trouve normalement dans le dossier bin de Tomcat.

phpmongodb@kumar:/usr/share/tomcat7/bin$ ./version.sh 

Remarque

Si vous ne savez pas où se trouve le fichier version.sh, essayez cette commande:

sudo find / -name "version.sh"

Découvrez tout sur Tomcat7.

sudo find / -name "tomcat7"

8

Cette seule commande que vous pouvez vérifier presque tout:

java -cp tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo

ou

tomcat/bin/catalina.sh version

Et la sortie ressemble à ceci

Server version: Apache Tomcat/8.5.24
Server built:   Nov 27 2017 13:05:30 UTC
Server number:  8.5.24.0
OS Name:        Linux
OS Version:     4.4.0-137-generic
Architecture:   amd64
JVM Version:    1.8.0_131-b11
JVM Vendor:     Oracle Corporation

7

exécuter ce qui suit

/usr/local/tomcat/bin/catalina.sh version

sa réponse sera quelque chose comme:

Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /var/tmp/
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_PID:    /var/catalina.pid
Server version: Apache Tomcat/7.0.30
Server built:   Sep 27 2012 05:13:37
Server number:  7.0.30.0
OS Name:        Linux
OS Version:     2.6.32-504.3.3.el6.x86_64
Architecture:   amd64
JVM Version:    1.7.0_60-b19
JVM Vendor:     Oracle Corporation

6

Une autre option consiste à afficher les notes de version de tomcat, applicables à linux / window

{Tomcat_home}/webapps/ROOT/RELEASE-NOTES.txt

5

Je sais qu'il est peut-être trop tard pour cela, mais cela pourrait être utile: si vous essayez de connaître la version du serveur Apache Tomcat à partir du code Java, vous pouvez utiliser:

à partir d'un HttpServlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    getServletContext().getServerInfo()
}

à partir d'un ServletContextListener:

public void contextInitialized(ServletContextEvent event)  { 
    event.getServletContext().getServerInfo();      
}

4

Si Tomcat est installé en tant que service, essayez:

sudo /etc/init.d/tomcat version

Remplacez "tomcat" par le nom réel du service.


3

Sous Linux pour vérifier la version de tomcat

cd /opt/tomcat/bin

./catalina.sh version

Cela fonctionne, mais vous devez utiliser «sudo» à chaque fois, non?
Sandun

2

Ouvrez votre page d'accueil tomcat (généralement localhost:8080)

Vous verrez quelque chose comme ceci:

entrez la description de l'image ici



1

Entrez 404.jspou non-existent.jsp.

Obtenez le numéro de version Tomcat / JBoss en bas de page.


1

Pour sécuriser Tomcat contre les pirates, il est recommandé d'essayer quelques étapes pour masquer les informations de version de Tomcat. Le projet OWASP propose quelques étapes. https://www.owasp.org/index.php/Securing_tomcat . Si une installation de tomcat est ainsi protégée, alors seulement 1 des réponses ci-dessus affichera la version de tomcat.
ie en passant par le fichier $ TOMCAT_HOME \ RELEASE-NOTES où le numéro de version est clairement annoncé.

J'avais un de ces serveurs protégés et seul le fichier RELEASE-NOTES révélait la version du tomcat. toutes les autres techniques n'ont pas révélé les informations de version.


1

Nous fonctionnons dans un environnement Windows et j'ai dû trouver un moyen d'obtenir la version Tomcat en dehors de l'environnement Java. Sans connaître la version, je n'ai pas pu déterminer les répertoires. J'ai finalement trouvé le meilleur moyen d'interroger le service Tomcat en utilisant:

C: \ temp> requête sc | find / I "tomcat"
SERVICE_NAME: Tomcat6
DISPLAY_NAME: Apache Tomcat 6.0 Tomcat6


0

Gestionnaire de tâches Windows> Processus> rechercher tomcat> clic droit> ouvrir l'emplacement du fichier> si vous exécutez Tomcat7w.exe, il est visible à la description.

Tomcat doit fonctionner pour être visible dans Processus sinon sous Windows Vista / 7, allez dans le gestionnaire de tâches> onglet (services), recherchez Tomcat, démarrez-le, puis traite.


Je suis allé au gestionnaire de tâches, le seul processus affiché est java.exe au lieu de tomcat7w.exe. si je tue java.exe, le serveur meurt
Yichaoz

0

Dans les environnements de type Unix, je recommande également de vérifier la ligne de commande du processus en cours d'exécution:

$ ps aux | grep java

...
/usr/lib/jvm/java-8-openjdk-amd64/bin/java -Djava.util.logging.config.file=/srv/tomcat-instances/bla/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xmx4096M -XX:+UseConcMarkSweepGC -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -Xmx4096m -Xms4096m -XX:MaxPermSize=2048m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8090 -Dcom.sun.management.jmxremote.rmi.port=8090 -Djava.rmi.server.hostname=localhost -Djava.endorsed.dirs=/opt/apache-tomcat-8.0.47/endorsed -classpath /opt/apache-tomcat-8.0.47/bin/bootstrap.jar:/opt/apache-tomcat-8.0.47/bin/tomcat-juli.jar -Dcatalina.base=/srv/tomcat-instances/bla -Dcatalina.home=/opt/apache-tomcat-8.0.47 -Djava.io.tmpdir=/tmp/tomcat8-bla-tmp org.apache.catalina.startup.Bootstrap start
...

On peut s'exécuter sur des comportements étranges subtils en raison des variables d'environnement (du système d'exploitation) et des propriétés système (Java) définies sur des valeurs inattendues. J'ai eu une situation où en raison d'un Tomcat obsolète setenv.sh, un Tomcat 8 a commencé avec des classes d'un Tomcat 7 sur le chemin des classes. Assurez - vous que dans les options de ligne de commande de processus tels que -Dcatalina.base, -Dcatalina.homeet du -classpathsens.


0

Démarrez simplement tomcat et recherchez " Nom de la version du serveur " catalina.logset vous obtiendrez la version de votre tomcat. Par exemple:

«07 mars 2019 11:25:40 org.apache.catalina.startup.VersionLoggerListener log INFO: Nom de la version du serveur: Apache Tomcat / 9.0.16 »


0

Vous pouvez trouver les informations du serveur via sa page d'état:

{running-tomcat-url}/manager/status

Sur cette page, vous pouvez voir la version de Java sur laquelle votre Tomcat fonctionne

Remarque: j'ai également collé cette réponse sur le problème de compatibilité Tomcat6 et JRE7. Version 51.0 major.minor non prise en charge


N'est-ce pas uniquement lorsque le gestionnaire est installé? Je sais que la valeur par défaut est de, mais nous ne le faisons pas
DannyK

0

Pour connaître la version exacte de Tomcat seul, il suffit de visiter vi tomcat/BUILDING.txt

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.