como descobrir a versão do tomcat em execução

175

Estou tentando fazer o Appfuse + tomcat + jRebel funcionar.

O Appfuse, por padrão, usa o Cargo para baixar o tomcat (versão 7.0.33) e implantar o aplicativo nele. Desejo usar um tomcat já instalado (versão 7.0.27) em vez do baixado. Fiz a alteração seguindo as perguntas frequentes do appfuse .

Após a implantação mvn cargo:run, como posso saber se o tomcat em execução é realmente 7.0.27?

Eu costumava digitar um URL errado (por exemplo, localhost: 8080 / dfsfsdf ) para vê-lo na página de erro, mas agora não mostra nada.

Meus $CATALINA_HOMEpontos para o meu próprio tomcat 7.0.27. desculpe esqueci de mencionar, é para Windows

Atualizar:

Como essa pergunta se tornou popular de alguma forma, eu gostaria de explicar por que essa resposta aceita. simples, foi o primeiro que resolveu meu problema.

olhando para o título da pergunta, o @Tech Junkie e o @CPU 100 realmente têm a melhor resposta, mas não para o cenário que encontrei. (Eu queria saber se mvn cargo:runexecuta meu tomcat instalado ou um tomcat "project embeded") :)

Yichaoz
fonte
1
se você pode fazer upload de um arquivo JSP você pode imprimir algumas informações, como neste exemplo: bestdesigns.co.in/blog/check-jsp-tomcat-version
wemu
certo! você conseguiu a resposta, é de fato 7.0.27 que eu quero. por favor poste-o como resposta
Yichaoz 17/02

Respostas:

52

se você puder fazer upload de um arquivo JSP, poderá imprimir algumas informações, como neste exemplo: bestdesigns.co.in/blog/check-jsp-tomcat-version

Salve esse código em um arquivo chamado tomcat_version.jsp:

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

Ao acessar, http://example.com/tomcat_version.jsp , a saída deve ser semelhante a:

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

Embora isso não seja recente, pensei, minha resposta ainda pode ajudar outras pessoas:

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

e é isso.

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
fonte
11
para ser um pouco mais específico, servidor / lib seria, por exemplo,/opt/tomcat/lib
Kai Carver
4
ou, por exemplo, no Windows,C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib
Kai Carver
10
ainda trabalhando em 2017. No meu CentOS 7, preciso acessar / usr / share / tomcat / lib.
Matthieu
Em um servidor Solaris 10, recebo o erro "Exceção no encadeamento" main "java.lang.UnsupportedClassVersionError: Número de versão inválido no arquivo .class" ao executar o comando. No RHEL 7.2, obtive a saída correta.
sv.
5
Isso deve ser marcado como a resposta correta. Não vejo por que você precisa escrever um JSP e implantá-lo para determinar a versão do tomcat. Essa resposta pode ter um público mais amplo, não apenas os programadores, como o administrador do sistema, apenas querendo saber a versão exata do tomcat.
Itherael 01/11/19
99
  1. Tente analisar ou executar o diretório Tomcat_home / bin e procure um script chamado version.sh ou version.bat, dependendo do seu sistema operacional.
  2. Execute o script ./version.shouversion.bat

Se não houver version.bat ou version.sh, use uma ferramenta para descompactar arquivos JAR (\ tomcat \ server \ lib \ catalina.jar) e procure no arquivo org \ apache \ catalina \ util \ lib \ ServerInfo.properties. a versão definida em "server.info =".

grepit
fonte
desculpe, esqueci de mencionar, estou no Windows. mas o problema é, eu não sei realmente o que de pasta tomcat está sendo ran
Yichaoz
@ Kossel Adicionei mais informações para verificar sua versão, mas é mais manual.
grepit
1
Eu encontrei a versão em org \ apache \ Catalina \ util \ ServerInfo.properties (havia nenhum pacote lib)
Federico Pugnali
49

execute o script no seu tomcat/bindiretório:

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
fonte
40

Você pode simplesmente abrir http://localhost:8080/no seu navegador da Web e isso abrirá a página de boas-vindas do Tomcat que mostra a execução da versão do Tomcat da seguinte forma:

Apache Tomcat/7.0.42
  • Presumo que seu Tomcat esteja sendo executado na porta 8080
Abdelhameed Mahmoud
fonte
12

Usando as notas de versão

Na pasta principal do Tomcat, você encontra o arquivo RELEASE-NOTES, que contém as seguintes linhas (~ linha 20-21):

                Apache Tomcat Version 8.0.22
                        Release Notes

Ou você pode obter as mesmas informações usando a linha de comando :

  • Windows :

    type RELEASE-NOTES | find "Apache Tomcat Version"

    Resultado:

                 Apache Tomcat Version 8.0.22
  • Linux :

    cat RELEASE-NOTES | grep "Apache Tomcat Version"

    Resultado:

                 Apache Tomcat Version 8.0.22
ROMANIA_engineer
fonte
12

A versão do Tomcat atualmente em execução

Se você definir a variável de ambiente -% CATALINA_HOME%, o Windows:

>> cd %CATALINA_HOME%\bin
>> version

Alternativamente,

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

MINHA CONFIGURAÇÃO --- Espero que a sua seja semelhante à seguinte

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

RESULTADO

Versão do servidor: Apache Tomcat / 8.0.28 Servidor criado: 7 de outubro de 2015 18:25:21 UTC Número do servidor: 8.0.28.0 Nome do SO: Windows 7 Versão do SO: 6.1 Arquitetura: amd64 Versão da JVM: 1.8.0_111-b14 JVM Fornecedor: Oracle Corporation

Yergalem
fonte
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

Se o Tomcat estiver instalado como um serviço:

#sudo /etc/init.d/tomcat version
Mack
fonte
Em * nix aqui. Meu arquivo de notas de versão estava ausente. Executando o sudocomando funcionou para mim
Kunal
10

Para descobrir a versão do Tomcat, localize este arquivo - version.sh para * nix ou version.bat para Windows. Esse arquivo version.sh normalmente está localizado na pasta bin do Tomcat.

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

Nota

Se você não tiver certeza de onde está o arquivo version.sh, tente este comando:

sudo find / -name "version.sh"

Descubra tudo sobre o Tomcat7.

sudo find / -name "tomcat7"
Nanhe Kumar
fonte
8

Este comando você pode verificar quase tudo:

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

ou

tomcat/bin/catalina.sh version

E a saída se parece com isso

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
fonte
7

execute o seguinte

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

sua resposta 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
tcat
fonte
6

Outra opção é visualizar as notas de versão do tomcat, aplicáveis ​​ao linux / window

{Tomcat_home}/webapps/ROOT/RELEASE-NOTES.txt
Harsimranjit Singh Kler
fonte
5

Sei que talvez seja tarde demais para isso, mas isso pode ser útil: Se você tentar conhecer a versão do Apache Tomcat Server a partir do código Java, poderá usar:

de um HttpServlet:

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

de um ServletContextListener:

public void contextInitialized(ServletContextEvent event)  { 
    event.getServletContext().getServerInfo();      
}
Aramis Rodríguez Blanco
fonte
4

Se o Tomcat estiver instalado como um serviço, tente:

sudo /etc/init.d/tomcat version

Troque "tomcat" pelo nome real do serviço.

Christopher Yang
fonte
3

No Linux, para verificar a versão do tomcat

cd /opt/tomcat/bin

./catalina.sh version
Narendra Kumar
fonte
Isso funciona, mas você precisa usar 'sudo' toda vez, certo?
Sandun
2

Abra sua página inicial do tomcat (geralmente localhost:8080 )

Você verá algo assim:

insira a descrição da imagem aqui

Eduardo
fonte
1

executar no terminal do servidor Unix

w3m http://localhost:8080/

para sair pressione q e depois y

Alvaro Vicente Leão Silvano
fonte
1

Digite 404.jspounon-existent.jsp .

Obtenha o número da versão do Tomcat / JBoss na parte inferior da página.

Ivan Chau
fonte
1

Para proteger o Tomcat de hackers, é recomendável tentar algumas etapas para ocultar as informações da versão do tomcat. O projeto OWASP sugere algumas etapas. https://www.owasp.org/index.php/Securing_tomcat . Se uma instalação do tomcat estiver protegida, apenas 1 das respostas acima mostrará a versão do tomcat.
ou seja, passando pelo arquivo $ TOMCAT_HOME \ RELEASE-NOTES, onde o número da versão é claramente anunciado.

Eu tinha um desses servidores protegidos e apenas o arquivo RELEASE-NOTES revelou a versão do tomcat. todas as outras técnicas falharam em revelar as informações da versão.

anjanb
fonte
1

Estamos executando em um ambiente Windows e eu tive que encontrar uma maneira de obter a versão do Tomcat fora do ambiente Java. Sem conhecer a versão, não consegui determinar os diretórios. Finalmente, encontrei a melhor maneira de consultar o serviço Tomcat usando:

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

kenbrown_ct
fonte
0

Gerenciador de tarefas do Windows> Processos> encontre tomcat> clique com o botão direito do mouse> abra o local do arquivo> se você executar o Tomcat7w.exe, ele estará visível na descrição.

O Tomcat deve estar executando para ficar visível em Processos, se não no Windows Vista / 7, vá para o gerenciador de tarefas> guia (serviços), localize o tomcat e inicie o processo.

madlymad
fonte
Fui ao gerenciador de tarefas, o único processo que mostra é java.exe em vez de tomcat7w.exe. se eu matar java.exe, o servidor morre
Yichaoz 17/02
0

Em ambientes tipo Unix, também recomendo verificar a linha de comando do processo em execução:

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

Pode-se executar comportamentos estranhos sutis devido a variáveis ​​de ambiente (sistema operacional) e propriedades do sistema (Java) sendo definidas para valores inesperados. Eu tive uma situação em que, devido a um Tomcat desatualizado setenv.sh, o A Tomcat 8 começou com aulas de um Tomcat 7 no caminho de classe. Verifique se as opções da linha de comando do processo, como -Dcatalina.base, -Dcatalina.homee -classpathfazem sentido.

Abdull
fonte
0

Simplesmente inicie o tomcat e pesquise " Nome da versão do servidor " catalina.logse você obterá a versão do seu tomcat. Por exemplo:

"07 de março de 2019 às 11:25:40 AM org.apache.catalina.startup.VersionLoggerListener log INFO: nome da versão do servidor: Apache Tomcat / 9.0.16 "

Shubh
fonte
0

Para conhecer a versão exata do tomcat sozinha, basta visitar vi tomcat/BUILDING.txt

gobi
fonte