Ich versuche Appfuse + Tomcat + jRebel zum Laufen zu bringen.
Appfuse verwendet Cargo standardmäßig zum Herunterladen von Tomcat (Version 7.0.33) und zum Bereitstellen der Anwendung. Ich möchte anstelle des heruntergeladenen Tomcat einen bereits installierten Tomcat (Version 7.0.27) verwenden. Ich habe die Änderung im Anschluss an die appfuse FAQ vorgenommen.
Wie kann ich nach der Bereitstellung mit mvn cargo:run
wissen, dass der tatsächlich ausgeführte Tomcat tatsächlich 7.0.27 ist?
Ich habe früher eine falsche URL eingegeben (z. B. localhost: 8080/dfsfsdf), um sie auf der Fehlerseite anzuzeigen. Jetzt wird jedoch nichts angezeigt.
Mein $CATALINA_HOME
zeigt auf mein eigenes Tomcat 7.0.27 ..., das leider vergessen ist zu erwähnen, es ist für Windows
Aktualisieren:
Da diese Frage irgendwie populär geworden ist, möchte ich erklären, warum diese Antwort akzeptiert wurde. Einfach, es war der erste, der mein Problem gelöst hat.
nach dem Titel der Frage haben @Tech Junkie und @CPU 100 wirklich die beste Antwort, aber nicht für das Szenario, dem ich begegnet bin. (Ich wollte wissen, ob mvn cargo:run
mein installiertes Tomcat ausführt oder ein "Projekt eingebettetes" Tomcat ist) :)
wenn Sie eine JSP-Datei hochladen können, können Sie einige Informationen wie in diesem Beispiel ausdrucken: bestdesigns.co.in/blog/check-jsp-Tomcat-version
Speichern Sie diesen Code in einer Datei namens Tomcat_version.jsp:
Tomcat Version : <%= application.getServerInfo() %><br>
Servlet Specification Version :
<%= application.getMajorVersion() %>.<%= application.getMinorVersion() %> <br>
JSP version :
<%=JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() %><br>
Wenn Sie auf http://example.com/Tomcat_version.jsp zugreifen, sollte die Ausgabe ähnlich aussehen:
Tomcat Version : Apache Tomcat/5.5.25
Servlet Specification Version : 2.4
JSP version: 2.0
Obwohl dies nicht neu ist, dachte ich, kann meine Antwort anderen helfen:
cd Tomcat/lib
Java -cp catalina.jar org.Apache.catalina.util.ServerInfo
und das ist 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
./version.sh
oder version.bat
aus.Wenn keine version.bat oder version.sh vorhanden ist, verwenden Sie ein Tool zum Entpacken von JAR-Dateien (\ Tomcat\server\lib\catalina.jar) und suchen in der Datei org\Apache\catalina\util\lib\ServerInfo .properties . die unter "server.info =" definierte Version.
führen Sie das Skript in Ihrem Tomcat/bin
-Verzeichnis aus:
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
Sie können http://localhost:8080/
einfach in Ihrem Webbrowser öffnen.
Apache Tomcat/7.0.42
Die aktuell ausgeführte Version von Tomcat
Wenn Sie die Umgebungsvariable -% CATALINA_HOME% festlegen, dannWindows:
>> cd %CATALINA_HOME%\bin
>> version
Alternative,
Java.exe -cp lib\catalina.jar org.Apache.catalina.util.ServerInfo
MEINE EINSTELLUNG --- Hoffe, dass Ihre wie folgt aussehen wird
%CATALINA_HOME% --- C:\Program Files\Tomcat\Apache-Tomcat-8.0.28
AUSGABE
Serverversion: Apache Tomcat/8.0.28 Server erstellt: 7. Oktober 2015 um 18:25:21 UTC Servernummer: 8.0.28.0 Betriebssystemname: Windows 7 Betriebssystemversion: 6.1 Architektur: AMD64 JVM-Version: 1.8.0_111-b14 JVM-Hersteller: Oracle Corporation
Um die Tomcat-Version herauszufinden, finden Sie diese Datei - version.sh für * nix oder version.bat für Windows. Diese version.sh-Datei befindet sich normalerweise im Bin-Ordner von Tomcat.
[email protected]:/usr/share/Tomcat7/bin$ ./version.sh
Hinweis
Wenn Sie nicht sicher sind, wo sich die version.sh-Datei befindet, führen Sie den folgenden Befehl aus:
Sudo find / -name "version.sh"
Erfahren Sie alles über Tomcat7.
Sudo find / -name "Tomcat7"
Im Hauptordner von Tomcat finden Sie die Datei RELEASE-NOTES , die folgende Zeilen enthält (~ Zeile 20-21):
Apache Tomcat Version 8.0.22 Release Notes
Oder Sie können die gleichen Informationen über Befehlszeile erhalten:
Windows :
type RELEASE-NOTES | find "Apache Tomcat Version"
Ausgabe:
Apache Tomcat Version 8.0.22
Linux :
cat RELEASE-NOTES | grep "Apache Tomcat Version"
Ausgabe:
Apache Tomcat Version 8.0.22
führe folgendes aus
/usr/local/Tomcat/bin/catalina.sh version
ihre Antwort wird so sein:
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
Für Windows-Maschine
bin>version.bat
Using CATALINA_BASE: "C:\Apache-Tomcat-7.0.53"
Using CATALINA_HOME: "C:\Apache-Tomcat-7.0.53"
Using CATALINA_TMPDIR: "C:\Apache-Tomcat-7.0.53\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk1.8.0_65"
Using CLASSPATH: "C:\Apache-Tomcat-7.0.53\bin\bootstrap.jar;C:\Apache-Tomcat-7.0.53\bin\Tomcat-juli.jar"
Server version: Apache Tomcat/7.0.53
Server built: Jan 01 2014 06:20:16
Server number: 7.0.53.0
OS Name: Windows 10
OS Version: 10.0
Architecture: AMD64
JVM Version: 1.8.0_65-b17
JVM Vendor: Oracle Corporation
Für Linux-Rechner
# ./version.sh
Using CATALINA_BASE: /usr/epramaan/Apache-Tomcat-7.0.56
Using CATALINA_HOME: /usr/epramaan/Apache-Tomcat-7.0.56
Using CATALINA_TMPDIR: /usr/epramaan/Apache-Tomcat-7.0.56/temp
Using JRE_HOME: /usr/Java/jdk1.7.0_71/jre
Using CLASSPATH: /usr/epramaan/Apache-Tomcat-7.0.56/bin/bootstrap.jar:/usr/epramaan/Apache-Tomcat-7.0.56/bin/Tomcat-juli.jar
Server version: Apache Tomcat/7.0.56
Server built: Sep 26 2014 12:08:24
Server number: 7.0.56.0
OS Name: Linux
OS Version: 2.6.32-431.el6.x86_64
Architecture: AMD64
JVM Version: 1.7.0_71-b14
JVM Vendor: Oracle Corporation
Wenn Tomcat als Dienst installiert ist:
#Sudo /etc/init.d/Tomcat version
Eine weitere Option ist die Anzeige der Versionshinweise von Tomcat, die für Linux/Window gelten
{Tomcat_home}/webapps/ROOT/RELEASE-NOTES.txt
Wenn Tomcat als Dienst installiert ist, versuchen Sie Folgendes:
Sudo /etc/init.d/Tomcat version
Tauschen Sie "Tomcat" gegen den tatsächlichen Namen des Dienstes aus.
Ich weiß, es ist vielleicht zu spät dafür, aber dies könnte nützlich sein: Wenn Sie versuchen, die Apache Tomcat Server-Version aus Java-Code zu kennen, können Sie Folgendes verwenden:
von einem HttpServlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
getServletContext().getServerInfo()
}
von einem ServletContextListener:
public void contextInitialized(ServletContextEvent event) {
event.getServletContext().getServerInfo();
}
Geben Sie 404.jsp
oder non-existent.jsp
ein.
Rufen Sie die Tomcat/JBoss-Versionsnummer unten auf der Seite auf.
Um Tomcat vor Hackern zu schützen, wird empfohlen, die Tomcat-Versionsinformationen mit ein paar Schritten auszublenden. Das OWASP-Projekt schlägt einige Schritte vor. https://www.owasp.org/index.php/Securing_Tomcat . Wenn eine Tomcat-Installation auf diese Weise geschützt ist, wird nur eine der obigen Antworten die Version von Tomcat anzeigen.
gehen Sie also die Datei $ Tomcat_HOME\RELEASE-NOTES durch, in der die Versionsnummer eindeutig bekannt gegeben wird.
Ich hatte einen solchen geschützten Server und nur die RELEASE-NOTES-Datei enthüllte die Version des Tomcat. Bei allen anderen Techniken wurde die Versionsinformation nicht angezeigt.
In Linux, um die Tomcat-Version zu überprüfen
cd /opt/Tomcat/bin
./catalina.sh version
Mit diesem einen Befehl können Sie fast alles überprüfen:
Java -cp Tomcat/lib/catalina.jar org.Apache.catalina.util.ServerInfo
Und die Ausgabe sieht so aus
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
Wir arbeiten in einer Windows-Umgebung und ich musste einen Weg finden, die Tomcat-Version außerhalb der Java-Umgebung zu bekommen. Ohne die Version zu kennen, konnte ich die Verzeichnisse nicht ermitteln. Ich fand schließlich den besten Weg, um den Tomcat-Dienst abzufragen:
C:\temp> sc Abfrage | finde/ich "Kater"
SERVICE_NAME: Tomcat6
DISPLAY_NAME: Apache Tomcat 6.0 Tomcat6
auf dem Terminal des Unix-Servers ausführen
w3m http://localhost:8080/
zum Beenden drücken Sie q und dann y
Starten Sie einfach Tomcat und suchen Sie in catalina.logs
nach " Serverversionsname ". Sie erhalten dann die Version Ihres Tomcat. Zum Beispiel:
"07. März 2019 11:25:40 org.Apache.catalina.startup.VersionLoggerListener log INFO: Name der Serverversion: Apache Tomcat / 9.0.16 "
In Unix-ähnlichen Umgebungen empfehle ich auch, die aktuelle Befehlszeile des laufenden Prozesses zu überprüfen:
$ 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
...
Aufgrund von (Betriebssystem) Umgebungsvariablen und (Java) Systemeigenschaften, die auf unerwartete Werte gesetzt sind, kann ein subtiles Verhalten ausgeführt werden. Ich hatte eine Situation, in der A Tomcat 8 aufgrund eines veralteten Tomcat setenv.sh
mit Klassen aus einem Tomcat 7 im Klassenpfad begann. Stellen Sie sicher, dass in der Befehlszeile Befehlszeilenoptionen wie -Dcatalina.base
, -Dcatalina.home
und -classpath
sinnvoll sind.
Windows-Task-Manager> Prozesse> Tomcat suchen> Rechtsklick> Dateispeicherort öffnen> Wenn Sie Tomcat7w.exe ausführen, wird dies in der Beschreibung angezeigt.
Tomcat sollte ausgeführt werden, um unter Prozesse sichtbar zu sein, wenn dies nicht unter Windows Vista/7 erfolgt. Gehen Sie zu Task-Manager> Registerkarte (Dienste).
Sie finden die Serverinformationen auf der Statusseite:
{running-Tomcat-url}/manager/status
Auf dieser Seite können Sie die Java-Version sehen, auf der Ihr Tomcat ausgeführt wird
Hinweis: Ich habe diese Antwort auch in das Kompatibilitätsproblem von Tomcat6 und JRE7 eingefügt. Nicht unterstützte Major-Minor-Version 51.0