come scoprire la versione di Tomcat in esecuzione


175

Sto cercando di far funzionare Appfuse + tomcat + jRebel.

Appfuse per impostazione predefinita utilizza Cargo per scaricare tomcat (ver. 7.0.33) e distribuirvi l'applicazione. Desidero utilizzare un Tomcat già installato (ver. 7.0.27) invece di quello scaricato. Ho apportato la modifica seguendo le FAQ di appfuse .

Dopo la distribuzione con mvn cargo:run, come posso sapere che l'attuale Tomcat in esecuzione è effettivamente 7.0.27?

Digitavo un URL errato (es. Localhost: 8080 / dfsfsdf ) per vederlo nella pagina di errore, ma ora non mostra nulla.

I miei $CATALINA_HOMEpunti per il mio Tomcat 7.0.27. scusate ho dimenticato di menzionare, è per Windows

Aggiornare:

Dato che questa domanda era diventata in qualche modo popolare, vorrei spiegare perché quella risposta accettata. semplice, è stato il primo a risolvere il mio problema.

guardando il titolo della domanda, @Tech Junkie e @CPU 100 hanno davvero la risposta migliore, ma non per lo scenario che ho incontrato. (Volevo sapere se mvn cargo:runesegue il mio Tomcat installato o un Tomcat "progetto incorporato") :)


1
se è possibile caricare un file JSP è possibile stampare alcune informazioni come in questo esempio: bestdesigns.co.in/blog/check-jsp-tomcat-version
WEMU

giusto! hai la risposta, è davvero 7.0.27 che voglio. per favore pubblicalo come risposta
Yichaoz,

Risposte:


52

se riesci a caricare un file JSP puoi stampare alcune informazioni come in questo esempio: bestdesigns.co.in/blog/check-jsp-tomcat-version

Salvare questo codice in un file chiamato tomcat_version.jsp:

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

Quando accedi, http://example.com/tomcat_version.jsp , l'output dovrebbe essere simile a:

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

517

Anche se questo non è recente, ho pensato, la mia risposta può ancora aiutare gli altri:

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

e basta.

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
per essere un po 'più specifico, server / lib sarebbe, ad esempio,/opt/tomcat/lib
Kai Carver

4
o per esempio su Windows,C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib
Kai Carver

10
ancora funzionante nel 2017. Sul mio CentOS 7, devo andare su / usr / share / tomcat / lib.
Matthieu,

Un server Solaris 10, viene visualizzato l'errore "Eccezione nel thread" principale "java.lang.UnsupportedClassVersionError: numero di versione errato nel file .class" quando ho eseguito il comando. Su RHEL 7.2 ho ottenuto l'output corretto.
sv.

5
Questo dovrebbe essere contrassegnato come la risposta corretta. Non vedo perché è necessario scrivere un JSP e distribuirlo per determinare la versione di Tomcat. Questa risposta può avere un pubblico più vasto non solo programmatori, come l'amministratore di sistema che vuole solo conoscere la versione esatta di Tomcat.
Itherael,

99
  1. Prova ad analizzare o eseguire la directory Tomcat_home / bin e cerca uno script chiamato version.sh o version.bat a seconda del tuo sistema operativo.
  2. Eseguire lo script ./version.shoversion.bat

Se non sono disponibili version.bat o version.sh, utilizzare uno strumento per decomprimere i file JAR (\ tomcat \ server \ lib \ catalina.jar) e cercare nel file org \ apache \ catalina \ util \ lib \ ServerInfo.properties. la versione definita in "server.info =".


scusa ho dimenticato di menzionare, sono in Windows. ma il problema è che in realtà non so quale tomcat della cartella è in esecuzione
Yichaoz,

@Kossel Ho aggiunto ulteriori informazioni per verificare la tua versione ma è più manuale.
grepit,

1
Ho trovato la versione in org \ apache \ catalina \ util \ ServerInfo.properties (non c'erano pacchetti lib)
Federico Pugnali,

49

esegui lo script nella tua tomcat/bindirectory:

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

Puoi semplicemente aprire http://localhost:8080/nel tuo browser Web e questo aprirà la pagina di benvenuto di Tomcat che mostra l'esecuzione della versione di Tomcat in questo modo:

Apache Tomcat/7.0.42
  • Presumo che il tuo Tomcat sia in esecuzione sulla porta 8080

12

Utilizzando le note di rilascio

Nella cartella principale di Tomcat è possibile trovare il file RELEASE-NOTES che contiene le seguenti righe (~ riga 20-21):

                Apache Tomcat Version 8.0.22
                        Release Notes

Oppure puoi ottenere le stesse informazioni usando la riga di comando :

  • Windows :

    type RELEASE-NOTES | find "Apache Tomcat Version"

    Produzione:

                 Apache Tomcat Version 8.0.22
  • Linux :

    cat RELEASE-NOTES | grep "Apache Tomcat Version"

    Produzione:

                 Apache Tomcat Version 8.0.22

12

La versione di Tomcat attualmente in esecuzione

Se imposti la variabile di ambiente -% CATALINA_HOME%, Windows:

>> cd %CATALINA_HOME%\bin
>> version

In alternativa,

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

LA MIA IMPOSTAZIONE --- Spero che la tua sia simile alla seguente

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

PRODUZIONE

Versione server: Apache Tomcat / 8.0.28 Server costruito: 7 ottobre 2015 18:25:21 UTC Numero server: 8.0.28.0 Nome SO: Windows 7 Versione SO: 6.1 Architettura: amd64 Versione JVM: 1.8.0_111-b14 JVM Venditore: 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

Se Tomcat è installato come servizio:

#sudo /etc/init.d/tomcat version

Su * nix qui. Il mio file delle note di rilascio mancava. Eseguire il sudocomando ha funzionato per me
Kunal,

10

Per scoprire la versione di Tomcat, trova questo file - version.sh per * nix o version.bat per Windows. Questo file version.sh si trova normalmente nella cartella bin di Tomcat.

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

Nota

Se non si è sicuri della posizione del file version.sh, provare questo comando:

sudo find / -name "version.sh"

Scopri tutto su Tomcat7.

sudo find / -name "tomcat7"

8

Questo unico comando che puoi controllare quasi tutto:

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

o

tomcat/bin/catalina.sh version

E l'output è simile al seguente

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

eseguire il seguente

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

la sua risposta sarà simile a:

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

Un'altra opzione è visualizzare le note di rilascio di Tomcat, applicabili a linux / window

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

5

So che forse è troppo tardi per questo, ma questo potrebbe essere utile: se provi a conoscere la versione di Apache Tomcat Server dal codice Java, puoi usare:

da un HttpServlet:

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

da un ServletContextListener:

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

4

Se Tomcat è installato come servizio, prova:

sudo /etc/init.d/tomcat version

Scambia "tomcat" con il nome effettivo del servizio.


3

In Linux per verificare la versione di Tomcat

cd /opt/tomcat/bin

./catalina.sh version

Funziona, ma devi usare 'sudo' ogni volta, giusto?
Sandun,

2

Apri la tua home page di Tomcat (di solito localhost:8080)

Vedrai qualcosa del genere:

inserisci qui la descrizione dell'immagine



1

Immettere 404.jspo non-existent.jsp.

Ottieni il numero di versione di Tomcat / JBoss in fondo alla pagina.


1

Per proteggere Tomcat dagli hacker, si consiglia di provare alcuni passaggi per nascondere le informazioni sulla versione di Tomcat. Il progetto OWASP suggerisce alcuni passaggi. https://www.owasp.org/index.php/Securing_tomcat . Se un'installazione di Tomcat è così protetta, solo 1 delle risposte sopra mostrerà la versione di Tomcat.
ovvero passando attraverso il file $ TOMCAT_HOME \ RELEASE-NOTES in cui il numero di versione è chiaramente annunciato.

Avevo un server così protetto e solo il file RELEASE-NOTES ha rivelato la versione di Tomcat. tutte le altre tecniche non hanno rivelato le informazioni sulla versione.


1

Siamo in esecuzione in un ambiente Windows e ho dovuto trovare un modo per ottenere la versione Tomcat al di fuori dell'ambiente Java. Senza conoscere la versione, non sono riuscito a determinare le directory. Alla fine ho scoperto che il modo migliore era interrogare il servizio Tomcat usando:

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


0

Gestione attività di Windows> Processi> trova tomcat> clic con il pulsante destro del mouse> apri posizione file> se si esegue Tomcat7w.exe è visibile alla descrizione.

Tomcat dovrebbe essere in esecuzione per essere visibile in Processi se non in Windows Vista / 7, vai a Task Manager> scheda (servizi) trova Tomcat avviarlo e quindi i processi.


Sono andato al task manager, l'unico processo che mostra è java.exe invece di tomcat7w.exe. se uccido java.exe il server muore
Yichaoz,

0

In ambienti simili a Unix, consiglio anche di controllare la riga di comando del processo in esecuzione:

$ 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
...

È possibile eseguire comportamenti strani e sottili a causa delle variabili di ambiente (sistema operativo) e delle proprietà di sistema (Java) impostate su valori imprevisti. Ho avuto una situazione in cui a causa di un Tomcat obsoleto setenv.sh, A Tomcat 8 è iniziato con le classi di un Tomcat 7 sul percorso di classe. Accertati che nella riga di comando opzioni come -Dcatalina.base, -Dcatalina.homee -classpathabbiano senso.


0

Basta avviare Tomcat e cercare " Nome versione server " in catalina.logse otterrai la versione di Tomcat. Per esempio:

"07 mar 2019 11:25:40 org.apache.catalina.startup.VersionLoggerListener log INFO: nome versione server: Apache Tomcat / 9.0.16 "



0

Per conoscere la versione esatta di Tomcat, basta visitare vi tomcat/BUILDING.txt

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.