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”) :)


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

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

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 =”.


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

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

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

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


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

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"

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

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

6

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

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

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();      
}

4

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

sudo /etc/init.d/tomcat version

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


3

W systemie Linux, aby sprawdzić wersję tomcat

cd /opt/tomcat/bin

./catalina.sh version

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



1

Wpisz 404.jsplub non-existent.jsp.

Uzyskaj numer wersji Tomcat / JBoss na dole strony.


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.


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


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.


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.


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 ”



0

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.