私はAppfuse + Tomcat + jRebelを動かそうとしています。
AppfuseはデフォルトでCargoを使ってTomcat(ver。7.0.33)をダウンロードし、それにアプリケーションをデプロイします。ダウンロードしたものではなく、既にインストールされているTomcat(バージョン7.0.27)を使用したいです。 appfuse FAQ に従って変更を加えました。
mvn cargo:run
を使用してデプロイした後、実際に実行されているTomcatが実際に7.0.27であることをどのようにして知ることができますか?
エラーページに表示するために間違ったURL(例: localhost:8080/dfsfsdf )を入力していましたが、今は何も表示されません。
私の$CATALINA_HOME
は私自身のTomcat 7.0.27を指しています。申し訳ありませんが、Windows用です
更新:
この質問がどういうわけか一般的になったので、私はなぜそれが受け入れられた答えを説明したいと思います。単純な、それは私の問題を解決した最初のものでした。
質問のタイトルを見ると、 @Tech Junkie と @CPU 100 が最も良い答えを示していますが、私が遭遇したシナリオではありません。 (mvn cargo:run
が私のインストールしたTomcatを実行しているのか、それとも "project embeded"されているTomcatを実行しているのか知りたいと思いました):)
jSPファイルをアップロードできる場合は、この例のように情報を印刷することができます。 bestdesigns.co.in/blog/check-jsp-Tomcat-version
このコードをTomcat_version.jspというファイルに保存します。
Tomcat Version : <%= application.getServerInfo() %><br>
Servlet Specification Version :
<%= application.getMajorVersion() %>.<%= application.getMinorVersion() %> <br>
JSP version :
<%=JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() %><br>
http://example.com/Tomcat_version.jsp にアクセスすると、出力は次のようになります。
Tomcat Version : Apache Tomcat/5.5.25
Servlet Specification Version : 2.4
JSP version: 2.0
これは最近のことではありませんが、私の答えはまだ他の人を助けることができると思いました。
cd Tomcat/lib
Java -cp catalina.jar org.Apache.catalina.util.ServerInfo
以上です。
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
またはversion.bat
を実行します。Version.batまたはversion.shがない場合は、JARファイルを解凍するツール(\ Tomcat\server\lib\catalina.jar)を使用して、ファイルorg\Apache\catalina\util\lib\ServerInfo.propertiesを調べます。 "server.info ="で定義されているバージョン.
Tomcat/bin
ディレクトリでスクリプトを実行します。
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
Webブラウザでhttp://localhost:8080/
を開くだけで、Tomcatのウェルカムページが開き、次のようなTomcatのバージョンが実行されていることがわかります。
Apache Tomcat/7.0.42
現在実行中のTomcatのバージョン
環境変数 - %CATALINA_HOME%を設定した場合は、Windows:
>> cd %CATALINA_HOME%\bin
>> version
あるいは
Java.exe -cp lib\catalina.jar org.Apache.catalina.util.ServerInfo
私の設定---あなたのものが以下のようになることを願っています
%CATALINA_HOME% --- C:\Program Files\Tomcat\Apache-Tomcat-8.0.28
出力
サーバーのバージョン:Apache Tomcat/8.0.28サーバーの構築:Oct 7 2015 18:25:21 UTCサーバー番号:8.0.28.0 OSの名前:Windows 7 OSのバージョン:6.1アーキテクチャ:AMD64 JVMのバージョン:1.8.0_111-b14 JVMのベンダー:オラクル株式会社
Tomcatのバージョンを調べるには、* nixの場合はversion.sh、Windowsの場合はversion.batというファイルを見つけます。通常、このversion.shファイルはTomcatのbinフォルダにあります。
phpmongodb@kumar:/usr/share/Tomcat7/bin$ ./version.sh
注意
Version.shファイルがどこにあるかわからない場合は、次のコマンドを試してください。
Sudo find / -name "version.sh"
Tomcat7についてすべて調べてください。
Sudo find / -name "Tomcat7"
Tomcatのメインフォルダに RELEASE-NOTES ファイルがあります。このファイルには次の行が含まれています(〜20行目から21行目)。
Apache Tomcat Version 8.0.22 Release Notes
または コマンドラインを使用して同じ情報を取得することができます :
ウィンドウズ :
type RELEASE-NOTES | find "Apache Tomcat Version"
出力:
Apache Tomcat Version 8.0.22
Linux :
cat RELEASE-NOTES | grep "Apache Tomcat Version"
出力:
Apache Tomcat Version 8.0.22
以下を実行
/usr/local/Tomcat/bin/catalina.sh version
その応答は次のようになります。
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
Windowsマシン用
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
Linuxマシンの場合
# ./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
Tomcatがサービスとしてインストールされている場合
#Sudo /etc/init.d/Tomcat version
もう1つの選択肢は、Tomcatからのリリースノートの表示です。linux/windowに適用可能です。
{Tomcat_home}/webapps/ROOT/RELEASE-NOTES.txt
私はそれが遅すぎるかもしれないことを知っています、しかしこれは役に立つかもしれません:あなたがJavaコードからApache Tomcat Serverバージョンを知りたいならば、あなたは使用できます:
httpServletから:
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
getServletContext().getServerInfo()
}
servletContextListenerから:
public void contextInitialized(ServletContextEvent event) {
event.getServletContext().getServerInfo();
}
Tomcatがサービスとしてインストールされている場合は、次のことを試してください。
Sudo /etc/init.d/Tomcat version
実際のサービス名と "Tomcat"を入れ替えます。
404.jsp
またはnon-existent.jsp
を入力してください。
ページ下部のTomcat/JBossのバージョン番号を取得します。
Tomcatをハッカーから守るために、Tomcatのバージョン情報を隠すためにいくつかの手順を試すことをお勧めします。 OWASPプロジェクトはいくつかのステップを提案します。 https://www.owasp.org/index.php/Securing_Tomcat 。 Tomcatインストールがこのように保護されている場合、上記の答えのうち1つだけがTomcatのバージョンを示します。
つまり、$ Tomcat_HOME\RELEASE-NOTESファイルの中で、バージョン番号が明確にアナウンスされているところを見ます。
私はそのような保護されたサーバーを1つ持っていて、RELEASE-NOTESファイルだけがTomcatのバージョンを明らかにしました。他のすべての技術はバージョン情報を明らかにすることに失敗しました。
LinuxでTomcatバージョンを確認するには
cd /opt/Tomcat/bin
./catalina.sh version
あなたがほとんどすべてをチェックすることができるこの1つのコマンド:
Java -cp Tomcat/lib/catalina.jar org.Apache.catalina.util.ServerInfo
そして出力はこのようになります
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
私たちはWindows環境で動いていて、TomcatバージョンをJava環境の外に出す方法を見つけなければなりませんでした。バージョンがわからないと、ディレクトリを特定できませんでした。私はついに最良の方法がTomcatサービスに問い合わせることであることがわかった:
C:\ temp> scクエリ見つける/私は "Tomcat"
SERVICE_NAME:Tomcat6
DISPLAY_NAME:Apache Tomcat 6.0 Tomcat 6
unixサーバーの端末で実行
w3m http://localhost:8080/
qを押して次にyを押す
Tomcatを起動し、catalina.logs
で " Server version name "を検索するだけで、あなたのTomcatのバージョンがわかります。例えば:
"Mar 07、2019 11:25:40 AM org.Apache.catalina.startup.VersionLoggerListenerログ情報:サーバのバージョン名:Apache Tomcat / 9.0.16 "
Unixライクな環境では、実際に実行中のプロセスのコマンドラインをチェックすることをお勧めします。
$ 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
...
(オペレーティングシステムの)環境変数と(Javaの)システムプロパティが予期しない値に設定されているため、微妙な奇妙な動作をすることがあります。私は時代遅れのTomcat setenv.sh
が原因で、A Tomcat 8がクラスパス上のTomcat 7からのクラスで始まったという状況を経験しました。プロセス内で-Dcatalina.base
、-Dcatalina.home
、-classpath
などのコマンドラインオプションが有効であることを確認してください。
Windowsのタスクマネージャ>プロセス> Tomcatの検索>右クリック>ファイルの場所を開く> Tomcat7w.exeを実行すると説明に表示されます。
Tomcatは、Windows Vista/7以外の場合は[プロセス]に表示されるように実行されているはずです。
サーバーの情報はステータスページで確認できます。
{running-Tomcat-url}/manager/status
そのページであなたのTomcatが動いているJavaのバージョンを見ることができます
注:私はこの回答を Tomcat 6とJRE 7の互換性の問題にも貼り付けました。サポートされていないmajor.minorバージョン51.0