Cómo averiguar cómo ejecutar la versión tomcat


175

Estoy tratando de hacer que Appfuse + tomcat + jRebel funcione.

Appfuse por defecto usa Cargo para descargar tomcat (ver. 7.0.33) e implementar la aplicación en él. Deseo utilizar un tomcat ya instalado (ver. 7.0.27) en lugar del descargado. Hice el cambio siguiendo las preguntas frecuentes de appfuse .

Después de implementar con mvn cargo:run, ¿cómo puedo saber que el tomcat real en ejecución es de hecho 7.0.27?

Solía ​​escribir una URL incorrecta (ej. Localhost: 8080 / dfsfsdf ) para verla en la página de error, pero ahora no muestra nada.

Mis $CATALINA_HOMEpuntos a mi propio tomcat 7.0.27. lo siento se olvidó de mencionar, es para Windows

Actualizar:

Como esta pregunta se había vuelto de alguna manera popular, me gustaría explicar por qué esa respuesta aceptó. simple, fue el primero que resolvió mi problema.

Mirando el título de la pregunta, @Tech Junkie y @CPU 100 realmente tienen la mejor respuesta, pero no para el escenario en el que me encontré. (Quería saber si mvn cargo:runejecuta mi tomcat instalado o un tomcat "proyecto embebido") :)


1
si puede cargar un archivo JSP, puede imprimir alguna información como en este ejemplo: bestdesigns.co.in/blog/check-jsp-tomcat-version
wemu

¡Derecha! tienes la respuesta, de hecho es 7.0.27 lo que quiero. por favor
publíquelo

Respuestas:


52

si puede cargar un archivo JSP, puede imprimir alguna información como en este ejemplo: bestdesigns.co.in/blog/check-jsp-tomcat-version

Guarde este código en un archivo llamado tomcat_version.jsp:

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

Cuando accede, http://example.com/tomcat_version.jsp , el resultado debería ser similar a:

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

517

Aunque esto no es reciente, pensé, mi respuesta aún puede ayudar a otros:

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

y eso es.

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
para ser un poco más específico, server / lib sería, por ejemplo,/opt/tomcat/lib
Kai Carver

44
o, por ejemplo, en Windows,C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib
Kai Carver

10
sigue trabajando en 2017. En mi CentOS 7, necesito ir a / usr / share / tomcat / lib.
Matthieu

En un servidor Solaris 10, aparece el error "Excepción en el subproceso" principal "java.lang.UnsupportedClassVersionError: número de versión incorrecto en el archivo .class" cuando ejecuté el comando. En RHEL 7.2 obtuve la salida correcta.
sv.

55
Esto debería etiquetarse como la respuesta correcta. No veo por qué necesita escribir un JSP e implementarlo para determinar la versión de Tomcat. Esta respuesta puede tener una audiencia más amplia, no solo programadores, como el administrador del sistema que solo quiere saber la versión exacta de Tomcat.
Israel

99
  1. Intente analizar o ejecutar el directorio Tomcat_home / bin y busque un script llamado version.sh o version.bat según su sistema operativo.
  2. Ejecute el script ./version.shoversion.bat

Si no hay version.bat o version.sh, utilice una herramienta para descomprimir archivos JAR (\ tomcat \ server \ lib \ catalina.jar) y busque en el archivo org \ apache \ catalina \ util \ lib \ ServerInfo.properties. la versión definida en "server.info =".


lo siento, olvidé mencionar, estoy en Windows. pero el problema es que no sé en realidad qué carpeta se está
ejecutando Tomcat

@Kossel Agregué más información para verificar su versión, pero es más manual.
grepit

1
Encontré la versión en org \ apache \ catalina \ util \ ServerInfo.properties (no había paquete lib)
Federico Pugnali

49

ejecuta el script en tu tomcat/bindirectorio:

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

Simplemente puede abrir http://localhost:8080/en su navegador web y esto abrirá la página de bienvenida de Tomcat que muestra la versión de Tomcat en ejecución de esta manera:

Apache Tomcat/7.0.42
  • Supongo que su Tomcat se está ejecutando en el puerto 8080

12

Usando las notas de la versión

En la carpeta principal de Tomcat puede encontrar el archivo RELEASE-NOTES que contiene las siguientes líneas (~ línea 20-21):

                Apache Tomcat Version 8.0.22
                        Release Notes

O puede obtener la misma información usando la línea de comando :

  • Ventanas :

    type RELEASE-NOTES | find "Apache Tomcat Version"

    Salida:

                 Apache Tomcat Version 8.0.22
  • Linux :

    cat RELEASE-NOTES | grep "Apache Tomcat Version"

    Salida:

                 Apache Tomcat Version 8.0.22

12

La versión de Tomcat actualmente en ejecución

Si configura la variable de entorno -% CATALINA_HOME%, Windows:

>> cd %CATALINA_HOME%\bin
>> version

Alternativamente,

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

MI CONFIGURACIÓN --- Espero que la tuya sea similar a la siguiente

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

SALIDA

Versión del servidor: Apache Tomcat / 8.0.28 Servidor creado: 7 de octubre de 2015 18:25:21 UTC Número de servidor: 8.0.28.0 Nombre del sistema operativo: Windows 7 Versión del sistema operativo: 6.1 Arquitectura: amd64 Versión de JVM: 1.8.0_111-b14 Proveedor de 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

Si Tomcat está instalado como un servicio:

#sudo /etc/init.d/tomcat version

En * nix aquí. Faltaba mi archivo de notas de la versión. Ejecutar el sudocomando funcionó para mí
Kunal

10

Para conocer la versión de Tomcat, busque este archivo: version.sh para * nix o version.bat para Windows. Este archivo version.sh normalmente se encuentra en la carpeta bin de Tomcat.

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

Nota

Si no está seguro de dónde está el archivo version.sh, pruebe este comando:

sudo find / -name "version.sh"

Descubre todo sobre Tomcat7.

sudo find / -name "tomcat7"

8

Este comando que puede verificar casi todo:

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

o

tomcat/bin/catalina.sh version

Y la salida se ve así

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

ejecuta lo siguiente

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

su respuesta será algo como:

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

Otra opción es ver las notas de la versión de tomcat, aplicables a linux / window

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

5

Sé que tal vez sea demasiado tarde para esto, pero esto podría ser útil: si intenta conocer la versión del servidor Apache Tomcat a partir del código Java, puede usar:

desde un HttpServlet:

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

desde un ServletContextListener:

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

4

Si Tomcat está instalado como un servicio, intente:

sudo /etc/init.d/tomcat version

Cambie "tomcat" con el nombre real del servicio.


3

En Linux para verificar la versión de tomcat

cd /opt/tomcat/bin

./catalina.sh version

Esto funciona, pero tienes que usar 'sudo' cada vez, ¿verdad?
Sandun

2

Abra su página de inicio de Tomcat (generalmente localhost:8080)

Verás algo como esto:

ingrese la descripción de la imagen aquí



1

Ingrese 404.jspo non-existent.jsp.

Obtenga el número de versión de Tomcat / JBoss en la parte inferior de la página.


1

Para proteger a Tomcat de los piratas informáticos, se recomienda que intentemos algunos pasos para ocultar la información de la versión de Tomcat. El proyecto OWASP sugiere algunos pasos. https://www.owasp.org/index.php/Securing_tomcat . Si una instalación de tomcat está protegida, solo 1 de las respuestas anteriores mostrará la versión de tomcat.
es decir, revisar el archivo $ TOMCAT_HOME \ RELEASE-NOTES donde se anuncia claramente el número de versión.

Tenía uno de estos servidores protegidos y solo el archivo RELEASE-NOTES reveló la versión del tomcat. todas las demás técnicas no pudieron revelar la información de la versión.


1

Nos estamos ejecutando en un entorno de Windows y tuve que encontrar una manera de obtener la versión de Tomcat fuera del entorno de Java. Sin conocer la versión, no pude determinar los directorios. Finalmente encontré que la mejor manera era consultar el servicio Tomcat usando:

C: \ temp> sc consulta | find / I "tomcat"
NOMBRE DE SERVICIO: Tomcat6
DISPLAY_NAME: Apache Tomcat 6.0 Tomcat6


0

Administrador de tareas de Windows> Procesos> buscar tomcat> clic derecho> abrir ubicación del archivo> si ejecuta Tomcat7w.exe, es visible en la descripción.

Tomcat debería ejecutarse para estar visible en los Procesos, si no en Windows Vista / 7, vaya al administrador de tareas> pestaña (servicios), busque Tomcat, inícielo y luego procese.


Fui al administrador de tareas, el único proceso que se muestra es java.exe en lugar de tomcat7w.exe. si mato java.exe el servidor muere
Yichaoz

0

En entornos tipo Unix, también recomiendo verificar la línea de comando del proceso en ejecución:

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

Uno puede ejecutar comportamientos extraños sutiles debido a que las variables de entorno (sistema operativo) y las propiedades del sistema (Java) se establecen en valores inesperados. Tuve una situación en la que debido a un Tomcat obsoleto setenv.sh, un Tomcat 8 comenzó con clases de un Tomcat 7 en el classpath. Asegúrese de que en el proceso las opciones de la línea de comandos como -Dcatalina.base, -Dcatalina.homey -classpathtengan sentido.


0

Simplemente inicie tomcat y busque " Nombre de la versión del servidor " en catalina.logsy obtendrá la versión de su tomcat. Por ejemplo:

"Mar 07, 2019 11:25:40 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Nombre de la versión del servidor: Apache Tomcat / 9.0.16 "



0

Para conocer la versión exacta de Tomcat solo, solo visite vi tomcat/BUILDING.txt

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.