Tomcat: hoe kom ik erachter dat de Tomcat-versie draait

Ik probeer Appfuse + kater + jRebel werkend te krijgen.

Appfuse gebruikt standaard Cargo om Tomcat (ver. 7.0.33) te downloaden en de applicatie erop te implementeren. Ik wil een reeds geïnstalleerde kater (ver. 7.0.27) gebruiken in plaats van de gedownloade. Ik heb de wijziging aangebracht volgens de veelgestelde vragen over appfuse.

Na implementatie met mvn cargo:run, hoe kan ik dan weten dat de daadwerkelijk draaiende kater inderdaad 7.0.27 is?

Vroeger typte ik een verkeerde URL (bijv. localhost:8080/dfsfsdf) om deze op de foutpagina te zien, maar nu wordt er niets weergegeven.

Mijn $CATALINA_HOMEverwijst naar mijn eigen kater 7.0.27.
sorry vergeten te vermelden, het is voor Windows

Bijwerken:

Aangezien deze vraag op de een of andere manier populair was geworden, wil ik graag uitleggen waarom dat geaccepteerde antwoord is. eenvoudig, het was de eerste die mijn probleem oploste.

kijkend naar de titel van de vraag, @Tech Junkieen @CPU 100hebben echt het beste antwoord, maar niet voor het scenario dat ik tegenkwam. (Ik wilde weten of mvn cargo:runmijn geïnstalleerde kater of een “in het project ingebedde” kater uitvoert) :)


Antwoord 1, autoriteit 100%

als je een JSP-bestand kunt uploaden, kun je wat informatie afdrukken zoals in dit voorbeeld: bestdesigns.co.in/blog/check-jsp-tomcat-version

Sla deze code op in een bestand met de naam tomcat_version.jsp:

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

Wanneer u http://example.com/tomcat_version.jspopent, moet de uitvoer lijken op:

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

Antwoord 2, autoriteit 95%

Hoewel dit niet recent is, dacht ik, kan mijn antwoord anderen toch helpen:

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

en dat is het.

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

Antwoord 3, autoriteit 99%

  1. Probeer de map Tomcat_home/bin te ontleden of uit te voeren en zoek naar
    een script met de naam version.shof version.bat, afhankelijk van uw
    besturingssysteem.
  2. Voer het script ./version.shof version.bat
  3. uit

Als er geen version.bat of version.sh zijn, dan
gebruik een tool om JAR-bestanden uit te pakken (\tomcat\server\lib\catalina.jar) en kijk in het bestand org\apache\catalina\util\lib\ServerInfo.properties.
de versie gedefinieerd onder “server.info=”.


Antwoord 4, autoriteit 93%

voer het script uit in uw 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

Antwoord 5, autoriteit 82%

U kunt eenvoudig http://localhost:8080/openen in uw webbrowser
en dit zal de Tomcat-welkomstpagina openen die de draaiende Tomcat-versie als volgt laat zien:

Apache Tomcat/7.0.42
  • Ik neem aan dat je Tomcat op poort 8080 draait

Antwoord 6, autoriteit 27%

De release-opmerkingen gebruiken

In de hoofdmap van Tomcat vindt u het bestand RELEASE-NOTESdat de volgende regels bevat (~regel 20-21):

               Apache Tomcat Version 8.0.22
                        Release Notes

Of u kunt dezelfde informatie verkrijgen via de opdrachtregel:

  • Windows:

    type RELEASE-NOTES | find "Apache Tomcat Version"
    

    Uitvoer:

                Apache Tomcat Version 8.0.22
    
  • Linux:

    cat RELEASE-NOTES | grep "Apache Tomcat Version"
    

    Uitvoer:

                Apache Tomcat Version 8.0.22
    

Antwoord 7, Autoriteit 27%

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

Als Tomcat is geïnstalleerd als een service:

#sudo /etc/init.d/tomcat version

Antwoord 8, Autoriteit 25%

De versie van Momenteel Running Tomcat

Als u de Environtment-variabele -% Catalina_Home% instelt, dan
Windows:

>> cd %CATALINA_HOME%\bin
>> version

alternatief,

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

Mijn instelling — Ik hoop dat de jouwe als volgt lijken op

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

UITGANG

Serverversie: Apache Tomcat/8.0.28
Server gebouwd: 7 oktober 2015 18:25:21 UTC
Servernummer: 8.0.28.0
OS-naam: Windows 7
OS-versie: 6.1
Architectuur: amd64
JVM-versie: 1.8.0_111-b14
JVM-leverancier: Oracle Corporation


Antwoord 9, autoriteit 24%

Als je de Tomcat-versie wilt weten, zoek je dit bestand: version.sh voor *nix of version.bat voor Windows. Dit version.sh-bestand bevindt zich normaal gesproken in de Tomcat-bin-map.

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

Opmerking

Als je niet zeker weet waar het version.sh-bestand is, probeer dan deze opdracht:

sudo find / -name "version.sh"

Ontdek alles over Tomcat7.

sudo find / -name "tomcat7"

Antwoord 10, autoriteit 24%

Dit ene commando waarmee je bijna alles kunt controleren:

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

of

tomcat/bin/catalina.sh version

En de uitvoer ziet er zo uit

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

Antwoord 11, autoriteit 14%

voer het volgende uit

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

het antwoord zal ongeveer zijn als:

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

Antwoord 12, autoriteit 12%

Ik weet dat het hier misschien te laat voor is, maar dit kan handig zijn:
Als u de Apache Tomcat Server-versie probeert te achterhalen uit Java-code, kunt u het volgende gebruiken:

van een HttpServlet:

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

van een ServletContextListener:

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

Antwoord 13, autoriteit 12%

Een andere optie is om de release-opmerkingen van Tomcat te bekijken, van toepassing op linux/window

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

Antwoord 14, autoriteit 12%

Ik heb deze uitdaging wanneer ik op een Ubuntu 18.04 Linux-server werk.

Zo heb ik het opgelost:

Voer de onderstaande opdracht uit om de locatie van uw version.sh-bestand te bepalen:

sudo find / -name "version.sh"

Voor mij was de output:

/opt/tomcat/bin/version.sh

Gebruik vervolgens de uitvoer en voer het bestand (version.sh) uit als een shellscript (sh):

sh /opt/tomcat/bin/version.sh

Dat is alles.

Ik hoop dat dit helpt


Antwoord 15, autoriteit 10%

Als Tomcat is geïnstalleerd als een service, probeer dan:

sudo /etc/init.d/tomcat version

Verwissel “tomcat” met de echte naam van de service.


Antwoord 16, autoriteit 6%

In Linux om de Tomcat-versie te controleren

cd /opt/tomcat/bin
./catalina.sh version

Antwoord 17, autoriteit 4%

Voer 404.jspof non-existent.jspin.

Verkrijg het Tomcat/JBoss-versienummer onderaan de pagina.


Antwoord 18, autoriteit 4%

Open je kater-startpagina (meestal localhost:8080)

Je ziet zoiets als dit:


Antwoord 19, autoriteit 4%

Voor Windows PowerShell-opdrachtregelmethode voor het controleren van actieve versie(s) van Tomcat-service:

(get-service Tomcat*).DisplayName

Voorbeelduitvoer…

Apache Tomcat 8.5 Tomcat8

Als u ook aanvullende details wilt weten, waaronder de locatie van de map waar de service wordt uitgevoerd:

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

Voorbeelduitvoer…

Name    DisplayName               State   PathName
----    -----------               -----   --------
Tomcat8 Apache Tomcat 8.5 Tomcat8 Running "C:\Program Files\Apache Software Foundation\Tomcat 8.5\bin\Tomcat8.exe" /...

Antwoord 20, autoriteit 2%

uitvoeren op terminal van de Unix-server

w3m http://localhost:8080/

om te stoppen, druk op q en vervolgens op y


Antwoord 21, autoriteit 2%

Om Tomcat te beveiligen tegen hackers, raden we aan een paar stappen te proberen om de versie-informatie van Tomcat te verbergen. Het OWASP-project stelt een aantal stappen voor. https://www.owasp.org/index.php/Securing_tomcat. Als een Tomcat-installatie dus beveiligd is, dan zal slechts 1 van de bovenstaande antwoorden de versie van Tomcat tonen.
d.w.z. het bestand $TOMCAT_HOME\RELEASE-NOTES doornemen waarin het versienummer duidelijk wordt aangekondigd.

Ik had zo’n beveiligde server en alleen het RELEASE-NOTES-bestand onthulde de versie van de kater. alle andere technieken konden de versie-informatie niet onthullen.


Antwoord 22, autoriteit 2%

We draaien in een Windows-omgeving en ik moest een manier vinden om de Tomcat-versie buiten de Java-omgeving te krijgen. Zonder de versie te kennen, kon ik de mappen niet bepalen. Ik heb eindelijk ontdekt dat de beste manier was om de Tomcat-service op te vragen met:

C:\temp>sc-query | zoek /I “kater”
SERVICE_NAME: Tomcat6
DISPLAY_NAME: Apache Tomcat 6.0 Tomcat6


Antwoord 23, autoriteit 2%

Op Windows gewoon cmd

C:\Program Files (x86)\Extensis\Portfolio Server\applications\tomcat\bin>version


Antwoord 24

Windows-taakbeheer > Processen > zoek kater > klik met de rechtermuisknop > open bestandslocatie > als je Tomcat7w.exe uitvoert, is het zichtbaar bij beschrijving.

Tomcat zou moeten draaien om zichtbaar te zijn bij Processen, zo niet bij Windows Vista/7 ga naar taakbeheer > tab (services) zoek tomcat start het en vervolgens verwerkt.


Antwoord 25

In Unix-achtige omgevingen raad ik ook aan om de opdrachtregel van het actieve proces te controleren:

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

Men kan op subtiele rare gedrag draaien als gevolg van (besturingssysteem) omgevingsvariabelen en (Java) systeemeigenschappen die zijn ingesteld op onverwachte waarden. Ik had een situatie waarin vanwege een verouderde tomcat setenv.sh, een Tomcat 8 begon met klassen van een Tomcat 7 op het klassenpad. Zorg ervoor dat in de opdrachtregelopties van het proces, zoals -Dcatalina.base, -Dcatalina.homeen -classpathlogies.


Antwoord 26

Start gewoon Tomcat en zoek naar “server versienaam ” in catalina.logsen u krijgt de versie van uw tomcat.
Bijvoorbeeld:

“maart 07, 2019 11:25:40 AM Org.apache.catalina.startup.versionLoggerListener Log
Info: Server Version Name: Apache Tomcat / 9.0.16


Antwoord 27

U kunt de serverinformatie vinden via de statuspagina:

{running-tomcat-url}/manager/status

Op die pagina kun je de versie van Java zien waarop je Tomcat draait

Opmerking: ik heb dit antwoord ook geplakt op Compatibiliteitsprobleem met Tomcat6 en JRE7. Niet-ondersteunde major.minor-versie 51.0


Antwoord 28

Als u alleen de exacte tomcat-versie wilt weten, gaat u naar vi tomcat/BUILDING.txt

Other episodes