Tomcat: Cum să aflați versiunea Tomcat care rulează (Programare, Java, Tomcat, Appfuse)

Yichaoz a intrebat.

Încerc să fac să funcționeze Appfuse + tomcat + jRebel.

Appfuse utilizează în mod implicit Cargo pentru a descărca tomcat (ver. 7.0.33) și a implementa aplicația pe acesta. Doresc să folosesc un tomcat deja instalat (ver. 7.0.27) în locul celui descărcat. Am efectuat modificarea urmând instrucțiunile Întrebări frecvente appfuse.

După ce am implementat cu mvn cargo:run, , cum pot să știu că tomcat-ul care rulează efectiv este într-adevăr 7.0.27?

Obișnuiam să scriu un URL greșit (ex. localhost:8080/dfsfsdf) pentru a o vedea în pagina de eroare, dar acum nu mai arată nimic.

Site-ul meu $CATALINA_HOME indică propriul meu tomcat 7.0.27. Îmi pare rău că am uitat să menționez, este pentru Windows

Actualizare:

Din moment ce această întrebare a devenit cumva populară, aș dori să explic de ce acest răspuns acceptat. simplu, a fost primul care mi-a rezolvat problema.

uitându-mă la titlul întrebării, @Tech Junkie și @CPU 100 chiar au cel mai bun răspuns, dar nu pentru scenariul cu care m-am confruntat eu. (Voiam să știu dacă mvn cargo:run rulează tomcat-ul meu instalat sau un tomcat „încorporat în proiect”) :)

Comentarii

  • dacă puteți încărca un fișier JSP, puteți tipări niște informații ca în acest exemplu: bestdesigns.co.in/blog/check-jsp-tomcat-version –  > Por wemu.
  • corect! ați primit răspunsul, este într-adevăr 7.0.27 ceea ce vreau. vă rog să îl postați ca răspuns –  > Por Yichaoz.
28 răspunsuri
wemu

dacă poți să încarci un fișier JSP poți să tipărești niște informații ca în acest exemplu: bestdesigns.co.in/blog/check-jsp-tomcat-version

Salvați acest cod într-un fișier numit tomcat_version.jsp:

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

Când accesați, http://example.com/tomcat_version.jsp, , ieșirea ar trebui să arate asemănător cu:

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

Venkatesh Laguduva

Deși acest lucru nu este recent, m-am gândit, răspunsul meu poate ajuta totuși pe alții:

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

și asta e tot.

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

Comentarii

  • pentru a fi un pic mai specific, server/lib ar fi, de exemplu, /opt/tomcat/lib –  > Por Kai Carver.
  • sau, de exemplu, pe Windows, C:Program FilesApache Software FoundationTomcat 8.0lib –  > Por Kai Carver.
  • încă funcționează în 2017. Pe CentOS 7 al meu, trebuie să mă duc la /usr/share/tomcat/lib. –  > Por Matthieu.
  • Un server Solaris 10, primesc o eroare „Exception in thread „main” java.lang.UnsupportedClassVersionError: Bad version number in .class file” când am executat comanda. Pe RHEL 7.2 am obținut ieșirea corectă. –  > Por sv..
  • Acesta ar trebui să fie etichetat ca fiind răspunsul corect. Nu înțeleg de ce trebuie să scrieți un JSP și să îl implementați pentru a determina versiunea Tomcat. Acest răspuns poate avea o audiență mai largă, nu doar pentru programatori, cum ar fi administratorul de sistem care dorește doar să știe versiunea exactă a Tomcat. –  > Por Itherael.
grepit
  1. Încercați să analizați sau să executați directorul Tomcat_home/bin și căutați un script numit version.sh sau version.bat în funcție de sistemul de operare.
  2. Executați scriptul ./version.sh sau version.bat

Dacă nu există version.bat sau version.sh, atunci utilizați un instrument de descompactare a fișierelor JAR (tomcatserverlibcatalina.jar) și căutați în fișierul orgapachecatalinautillibServerInfo.properties.versiunea definită la „server.info=”.

Comentarii

  • îmi pare rău că am uitat să menționez, sunt în Windows. dar problema este că nu știu de fapt în ce dosar este rulat tomcat –  > Por Yichaoz.
  • @Kossel Am adăugat mai multe informații pentru a verifica versiunea ta, dar este mai manual. –  > Por grepit.
  • Am găsit versiunea în orgapachecatalinautilServerInfo.properties (nu existau pachete lib) –  > Por Federico Pugnali.
tokhi

executați scriptul în tomcat/bin director:

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

Abdelhameed Mahmoud

Puteți deschide pur și simplu http://localhost:8080/ în browserul dvs. web și se va deschide pagina de întâmpinare Tomcat care arată versiunea Tomcat în curs de execuție, după cum urmează:

Apache Tomcat/7.0.42
  • Presupun că Tomcat rulează pe portul 8080.

Yergalem

Versiunea de Tomcat care rulează în prezent

Dacă ați setat variabila de mediu – %CATALINA_HOME%, atunciWindows :

>> cd %CATALINA_HOME%bin
>> version

Alternativ,

java.exe -cp libcatalina.jar org.apache.catalina.util.ServerInfo

SETAREA MEA — Sper că a ta va fi similară cu cea de mai jos

%CATALINA_HOME% --- C:Program FilesTomcatapache-tomcat-8.0.28

IEȘIRE

Versiunea serverului: Apache Tomcat/8.0.28Server construit: Oct 7 2015 18:25:21 UTCNumărul serverului: 8.0.28.0Nume OS: Windows 7OS Version: 6.1Arhitectura: amd64JVM Version: 1.8.0_111-b14JVM Vendor: Oracle Corporation

Nanhe Kumar

Pentru a afla versiunea Tomcat, găsiți acest fișier – version.sh pentru *nix sau version.bat pentru Windows. Acest fișier version.sh se află în mod normal în dosarul bin Tomcat.

[email protected]:/usr/share/tomcat7/bin$ ./version.sh 

Notă

Dacă nu sunteți sigur unde se află fișierul version.sh, încercați această comandă :

sudo find / -name "version.sh"

Aflați totul despre Tomcat7.

sudo find / -name "tomcat7"

ROMANIA_engineer

Utilizarea notelor de versiune

În dosarul principal Tomcat puteți găsi fișierul RELEASE-NOTES care conține următoarele rânduri (~linia 20-21):

                Apache Tomcat Version 8.0.22
                        Release Notes

Sau puteți obține aceleași informații folosind linia de comandă:

  • Windows:

    type RELEASE-NOTES | find "Apache Tomcat Version"
    

    Ieșire:

                 Apache Tomcat Version 8.0.22
    
  • Linux:

    cat RELEASE-NOTES | grep "Apache Tomcat Version"
    

    Ieșire:

                 Apache Tomcat Version 8.0.22
    

Mack
For windows machine 
Go to the tomcat directory C:apache-tomcat-x.0.xxbin
    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.xxtemp"
    Using JRE_HOME:        "C:Program FilesJavajdk1.8.0_65"
    Using CLASSPATH:       "C:apache-tomcat-x.0.xxbinbootstrap.jar;C:apache-tomcat-x.0.xxbintomcat-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

Dacă Tomcat este instalat ca serviciu:

#sudo /etc/init.d/tomcat version

Comentarii

  • Pe *nix aici. Fișierul cu notele de lansare lipsea. Rularea fișierului sudo a funcționat pentru mine –  > Por Kunal.
Surasin Tancharoen

Această comandă pe care o puteți verifica aproape totul:

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

sau

tomcat/bin/catalina.sh version

Și ieșirea arată astfel

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

tcat

executați următoarele

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

răspunsul său va fi ceva de genul:

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

Harsimranjit Singh Kler

O altă opțiune este vizualizarea notelor de lansare de la Tomcat, aplicabile la Linux / Windows

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

Aramis Rodríguez Blanco

Știu că este poate prea târziu pentru asta, dar ar putea fi util:Dacă încercați să aflați versiunea serverului Apache Tomcat din codul Java, puteți folosi:

de la un HttpServlet:

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

de la un ServletContextListener:

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

Christopher Yang

Dacă Tomcat este instalat ca un serviciu, încercați:

sudo /etc/init.d/tomcat version

Schimbați „tomcat” cu numele real al serviciului.

Narendra Kumar

În Linux, pentru a verifica versiunea Tomcat

cd /opt/tomcat/bin

./catalina.sh version

Comentarii

  • Acest lucru funcționează, dar trebuie să folosiți „sudo” de fiecare dată, nu? –  > Por Sandun.
Eduardo

Deschideți pagina de pornire a tomcat-ului (de obicei localhost:8080)

Veți vedea ceva de genul acesta:

Promisiune Preston

Am această provocare atunci când lucrez pe un server Ubuntu 18.04 Linux.

Iată cum am rezolvat-o:

Rulați comanda de mai jos pentru a determina locația version.sh fișierului:

sudo find / -name "version.sh"

Pentru mine, rezultatul a fost::

/opt/tomcat/bin/version.sh

Apoi, folosind ieșirea, rulați fișierul (version.sh) ca un script shell (sh):

sh /opt/tomcat/bin/version.sh

Asta e tot.

Sper că acest lucru vă ajută

Alvaro Vicente León Silvano

rulați pe terminalul serverului Unix

w3m http://localhost:8080/

pentru a ieși apăsați q și apoi y

Ivan Chau

Introduceți 404.jsp sau non-existent.jsp.

Obțineți numărul versiunii Tomcat/JBoss în partea de jos a paginii.

anjanb

Pentru a securiza Tomcat de hackeri, este recomandat să încercăm câțiva pași la ascunderea informațiilor despre versiunea Tomcat. Proiectul OWASP sugerează câțiva pași. https://www.owasp.org/index.php/Securing_tomcat . Dacă o instalare tomcat este astfel protejată, atunci doar 1 dintre răspunsurile de mai sus va arăta versiunea tomcat.
Adică parcurgerea fișierului $TOMCAT_HOMERELEASE-NOTES, unde numărul versiunii este anunțat în mod clar.

Am avut un astfel de server protejat și numai fișierul RELEASE-NOTES a dezvăluit versiunea Tomcat. toate celelalte tehnici nu au reușit să dezvăluie informațiile despre versiune.

kenbrown_ct

Funcționăm într-un mediu Windows și a trebuit să găsesc o modalitate de a obține versiunea Tomcat în afara mediului Java. Fără a cunoaște versiunea, nu am putut determina directoarele. În cele din urmă, am descoperit că cea mai bună metodă era să interoghez serviciul Tomcat folosind:

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

jrykowski

Pentru Windows PowerShell, metoda de verificare prin linie de comandă a versiunii (versiunilor) în curs de execuție a serviciului Tomcat:

(get-service Tomcat*).DisplayName

Exemplu de ieșire…

Apache Tomcat 8.5 Tomcat8

Dacă doriți, de asemenea, să cunoașteți detalii suplimentare, inclusiv locația dosarului în care rulează serviciul:

Get-WmiObject win32_service | Where-Object {$_.Name -like 'Tomcat*'} | select Name, DisplayName, State, PathName

Exemplu de ieșire…

Name    DisplayName               State   PathName
----    -----------               -----   --------
Tomcat8 Apache Tomcat 8.5 Tomcat8 Running "C:Program FilesApache Software FoundationTomcat 8.5binTomcat8.exe" /...

Steven Baker

Pe Windows, doar cmd

C:Program Files (x86)ExtensisPortfolio Serveraplicationstomcatbin>version

madlymad

Managerul de activități Windows > Procese > găsiți tomcat > faceți clic dreapta > deschideți locația fișierului > dacă executați Tomcat7w.exe este vizibil la descriere.

Tomcat ar trebui să ruleze pentru a fi vizibil la Procese, dacă nu la Windows Vista/7 mergeți la Task Manager > tab (servicii) găsiți Tomcat porniți-l și apoi procesele.

Comentarii

  • M-am dus la task manager, singurul proces afișat este java.exe în loc de tomcat7w.exe. dacă omor java.exe serverul moare –  > Por Yichaoz.
Abdull

În mediile de tip Unix, vă recomand, de asemenea, să verificați linia de comandă a procesului care rulează efectiv:

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

Se poate rula pe comportamente ciudate subtile din cauza variabilelor de mediu (ale sistemului de operare) și a proprietăților de sistem (Java) care sunt setate la valori neașteptate. Am avut o situație în care, din cauza unui Tomcat învechit setenv.sh, , un Tomcat 8 a pornit cu clase de la un Tomcat 7 pe classpath. Asigurați-vă că în linia de comandă a procesului opțiuni precum -Dcatalina.base, , -Dcatalina.home și -classpath au sens.

Shubh

Pur și simplu porniți tomcat și căutați „Numele versiunii serverului” în catalina.logs și veți obține versiunea tomcat-ului dvs. de exemplu:

„Mar 07, 2019 11:25:40 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Numele versiunii serverului: Apache Tomcat/9.0.16

Carlo Ledesma

Puteți afla informații despre server prin intermediul paginii sale de stare:

{running-tomcat-url}/manager/status

Pe acea pagină puteți vedea versiunea de Java pe care rulează Tomcat-ul dvs.

Notă: Am lipit și acest răspuns privind problema de compatibilitate între Tomcat6 și JRE7. Versiunea major.minor 51.0 neacceptată.

Comentarii

  • Nu este acest lucru numai atunci când managerul este instalat? Știu că implicit este să, dar noi nu…  > Por DannyK.
gobi

Pentru a ști doar versiunea exactă a tomcat-ului, vizitați pur și simplu vi tomcat/BUILDING.txt