jak sprawdzić, czy działa wersja tomcat

175

Próbuję uruchomić Appfuse + tomcat + jRebel.

Appfuse domyślnie używa Cargo do pobrania tomcat (wersja 7.0.33) i wdrożenia w nim aplikacji. Chciałbym użyć już zainstalowanego tomcata (wersja 7.0.27) zamiast pobranego. Dokonałem zmiany po odpowiedzi na często zadawane pytania dotyczące appfuse .

Po wdrożeniu z mvn cargo:run, skąd mogę wiedzieć, że faktycznie działający tomcat to rzeczywiście 7.0.27?

Kiedyś wpisałem zły adres URL (np. Localhost: 8080 / dfsfsdf ), aby zobaczyć go na stronie błędu, ale teraz nic nie pokazuje.

Moje $CATALINA_HOMEuwagi do mojego własnego kocura 7.0.27. przepraszam zapomniałem wspomnieć, że to dla systemu Windows

Aktualizacja:

Ponieważ to pytanie stało się w jakiś sposób popularne, chciałbym wyjaśnić, dlaczego ta przyjęta odpowiedź. proste, to była pierwsza, która rozwiązała mój problem.

patrząc na tytuł pytania, @Tech Junkie i @CPU 100 naprawdę mają najlepszą odpowiedź, ale nie dla scenariusza, z którym się spotkałem. (Chciałem wiedzieć, czy mvn cargo:runuruchamia mojego zainstalowanego tomcata, czy tomcata „osadzonego w projekcie”) :)

Yichaoz
źródło
1
jeśli możesz przesłać plik JSP, możesz wydrukować informacje, takie jak w tym przykładzie: bestdesigns.co.in/blog/check-jsp-tomcat-version
wemu
dobrze! masz odpowiedź, to rzeczywiście 7.0.27, którego chcę. prześlij to jako odpowiedź
Yichaoz

Odpowiedzi:

52

jeśli możesz przesłać plik JSP, możesz wydrukować informacje, takie jak w tym przykładzie: bestdesigns.co.in/blog/check-jsp-tomcat-version

Zapisz ten kod w pliku o nazwie tomcat_version.jsp:

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

Gdy uzyskasz dostęp do http://example.com/tomcat_version.jsp , dane wyjściowe powinny wyglądać podobnie do:

Tomcat Version : Apache Tomcat/5.5.25
Servlet Specification Version : 2.4
JSP version: 2.0
wemu
źródło
517

Pomyślałem, że choć nie jest to niedawne, moja odpowiedź może pomóc innym:

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

i to wszystko.

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
Tech Junkie
źródło
11
by być trochę bardziej szczegółowym, server / lib to na przykład/opt/tomcat/lib
Kai Carver
4
lub na przykład w systemie Windows,C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib
Kai Carver
10
nadal pracuję w 2017 roku. Na moim CentOS 7 muszę przejść do / usr / share / tomcat / lib.
Matthieu
Na jednym serwerze Solaris 10 pojawia się błąd „Wyjątek w wątku„ main ”java.lang.UnsupportedClassVersionError: Zły numer wersji w pliku .class” po uruchomieniu polecenia. Na RHEL 7.2 otrzymałem poprawne wyjście.
sv.
5
To powinno być oznaczone jako poprawna odpowiedź. Nie rozumiem, dlaczego musisz napisać stronę JSP i wdrożyć ją, aby określić wersję tomcat. Ta odpowiedź może mieć szersze grono odbiorców, nie tylko programistów, takich jak administratorzy systemu, którzy chcą tylko poznać dokładną wersję tomcat.
Itherael
99
  1. Spróbuj przeanalizować lub uruchomić katalog Tomcat_home / bin i poszukaj skryptu o nazwie version.sh lub version.bat, w zależności od systemu operacyjnego.
  2. Uruchom skrypt ./version.shlubversion.bat

Jeśli nie ma wersji version.bat ani version.sh, użyj narzędzia do rozpakowania plików JAR (\ tomcat \ server \ lib \ catalina.jar) i zajrzyj do pliku org \ apache \ catalina \ util \ lib \ ServerInfo.properties. wersja zdefiniowana w „server.info =”.

grepit
źródło
przepraszam zapomniałem wspomnieć, jestem w systemie Windows. ale problem polega na tym, że właściwie nie wiem, który folder jest uruchamiany tomcat
Yichaoz
@Kossel Dodałem więcej informacji, aby sprawdzić Twoją wersję, ale jest to bardziej instrukcja.
grepit
1
Znalazłem wersję w org \ apache \ catalina \ util \ ServerInfo.properties (nie było pakietu lib)
Federico Pugnali
49

wykonaj skrypt w swoim tomcat/binkatalogu:

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
tokhi
źródło
40

Możesz po prostu otworzyć http://localhost:8080/w przeglądarce internetowej, a to otworzy stronę powitalną Tomcat, która pokazuje uruchomioną wersję Tomcat w następujący sposób:

Apache Tomcat/7.0.42
  • Zakładam, że Twój Tomcat działa na porcie 8080
Abdelhameed Mahmoud
źródło
12

Korzystanie z informacji o wersji

W głównym folderze Tomcat można znaleźć plik RELEASE-NOTES , który zawiera następujące wiersze (~ linia 20-21):

                Apache Tomcat Version 8.0.22
                        Release Notes

Lub możesz uzyskać te same informacje za pomocą wiersza poleceń :

  • Okna :

    type RELEASE-NOTES | find "Apache Tomcat Version"

    Wynik:

                 Apache Tomcat Version 8.0.22
  • Linux :

    cat RELEASE-NOTES | grep "Apache Tomcat Version"

    Wynik:

                 Apache Tomcat Version 8.0.22
ROMANIA_engineer
źródło
12

Wersja aktualnie działającego Tomcata

Jeśli ustawisz zmienną środowiskową -% CATALINA_HOME%, to Windows:

>> cd %CATALINA_HOME%\bin
>> version

Alternatywnie,

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

MOJE USTAWIENIA --- Mam nadzieję, że twoje będzie podobne do następujących

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

WYNIK

Wersja serwera: Apache Tomcat / 8.0.28 Data budowy serwera: 7 października 2015 r. 18:25:21 UTC Numer serwera: 8.0.28.0 Nazwa systemu operacyjnego: Windows 7 Wersja systemu operacyjnego: 6.1 Architektura: amd64 Wersja maszyny JVM: 1.8.0_111-b14 Dostawca maszyny JVM: Oracle Corporation

Yergalem
źródło
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

Jeśli Tomcat jest zainstalowany jako usługa:

#sudo /etc/init.d/tomcat version
Mack
źródło
Na * nix tutaj. Brakuje pliku z informacjami o wersji. Uruchomienie sudopolecenia zadziałało dla mnie
Kunal
10

Aby sprawdzić wersję Tomcat, znajdź ten plik - version.sh dla * nix lub version.bat dla Windows. Ten plik version.sh zwykle znajduje się w folderze bin Tomcat.

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

Uwaga

Jeśli nie jesteś pewien, gdzie jest plik version.sh, wypróbuj to polecenie:

sudo find / -name "version.sh"

Dowiedz się wszystkiego o Tomcat7.

sudo find / -name "tomcat7"
Nanhe Kumar
źródło
8

To jedno polecenie, które możesz sprawdzić prawie wszystko:

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

lub

tomcat/bin/catalina.sh version

Wynik wygląda następująco

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
Surasin Tancharoen
źródło
7

uruchom następujące

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

jego odpowiedź będzie wyglądać mniej więcej tak:

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
tcat
źródło
6

Inną opcją jest wyświetlenie informacji o wydaniu z tomcat, dotyczących linux / window

{Tomcat_home}/webapps/ROOT/RELEASE-NOTES.txt
Harsimranjit Singh Kler
źródło
5

Wiem, że może jest na to za późno, ale może to być przydatne: jeśli spróbujesz poznać wersję serwera Apache Tomcat z kodu Java, możesz użyć:

z HttpServlet:

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

z ServletContextListener:

public void contextInitialized(ServletContextEvent event)  { 
    event.getServletContext().getServerInfo();      
}
Aramis Rodríguez Blanco
źródło
4

Jeśli Tomcat jest zainstalowany jako usługa, spróbuj:

sudo /etc/init.d/tomcat version

Zamień „tomcat” na rzeczywistą nazwę usługi.

Christopher Yang
źródło
3

W systemie Linux, aby sprawdzić wersję tomcat

cd /opt/tomcat/bin

./catalina.sh version
Narendra Kumar
źródło
To działa, ale za każdym razem musisz używać „sudo”, prawda?
Sandun,
2

Otwórz swoją stronę główną Tomcat (zwykle localhost:8080)

Zobaczysz coś takiego:

wprowadź opis obrazu tutaj

Eduardo
źródło
1

uruchomić na terminalu serwera Unix

w3m http://localhost:8080/

aby wyjść, naciśnij q, a następnie y

Alvaro Vicente León Silvano
źródło
1

Wpisz 404.jsplub non-existent.jsp.

Uzyskaj numer wersji Tomcat / JBoss na dole strony.

Ivan Chau
źródło
1

Aby zabezpieczyć Tomcat przed hakerami, zalecamy wypróbowanie kilku kroków w celu ukrycia informacji o wersji tomcat. Projekt OWASP proponuje kilka kroków. https://www.owasp.org/index.php/Securing_tomcat . Jeśli instalacja tomcat jest w ten sposób chroniona, tylko 1 z powyższych odpowiedzi pokaże wersję tomcat.
tj. przechodzenie przez plik $ TOMCAT_HOME \ RELEASE-NOTES, w którym numer wersji jest wyraźnie ogłoszony.

Miałem jeden taki chroniony serwer i tylko plik RELEASE-NOTES ujawnił wersję tomcata. wszystkie inne techniki nie ujawniły informacji o wersji.

anjanb
źródło
1

Pracujemy w środowisku Windows i musiałem znaleźć sposób na pobranie wersji Tomcata poza środowisko Java. Nie znając wersji, nie mogłem określić katalogów. W końcu znalazłem najlepszy sposób, aby wysłać zapytanie do usługi Tomcat za pomocą:

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

kenbrown_ct
źródło
0

Menedżer zadań Windows> Procesy> znajdź tomcat> kliknij prawym przyciskiem myszy> otwórz lokalizację pliku> jeśli uruchamiasz Tomcat7w.exe, jest to widoczne w opisie.

Tomcat powinien działać, aby był widoczny w Procesach, jeśli nie w systemie Windows Vista / 7, przejdź do menedżera zadań> zakładka (usługi) znajdź tomcat, uruchom go, a następnie przetwarza.

madlymad
źródło
Poszedłem do menedżera zadań, jedyny wyświetlany proces to java.exe zamiast tomcat7w.exe. jeśli zabiję
java.exe,
0

W środowiskach uniksopodobnych zalecam również sprawdzenie wiersza poleceń aktualnie uruchomionego procesu:

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

Można działać na subtelnych dziwnych zachowaniach ze względu na zmienne środowiskowe (systemu operacyjnego) i właściwości systemu (Java) ustawione na nieoczekiwane wartości. Miałem sytuację, w której z powodu przestarzałego Tomcata setenv.sh, Tomcat 8 zaczął od klas z Tomcata 7 na ścieżce klas. Upewnij się, że w opcjach linii poleceń, takich jak proces -Dcatalina.base, -Dcatalina.homei -classpathsensu.

Abdull
źródło
0

Po prostu uruchom program tomcat i wyszukaj „ nazwę wersji serwera ” w, catalina.logsa otrzymasz wersję swojego tomcata. Na przykład:

„Mar 07, 2019 11:25:40 AM org.apache.catalina.startup.VersionLoggerListener dziennika INFO: Nazwa wersji serwera: Apache Tomcat / 9.0.16

Shubh
źródło
0

Aby poznać dokładną wersję tylko tomcat, wystarczy odwiedzić vi tomcat/BUILDING.txt

gobi
źródło