টমক্যাট সংস্করণ চলমান কীভাবে খুঁজে পাবেন


175

আমি অ্যাপফিউজ + টমক্যাট + জেরিবেল কাজ করার চেষ্টা করছি।

ডিফল্টরূপে অ্যাপফিউজ টমকাট (ভার্সন .0.০.৩৩) ডাউনলোড করতে এবং এতে অ্যাপ্লিকেশন স্থাপন করতে কার্গো ব্যবহার করে। আমি ডাউনলোড হওয়াটির পরিবর্তে ইতিমধ্যে ইনস্টল করা টমক্যাটটি (ভার্সন .0.০.২7) ব্যবহার করতে চাই। আমি অ্যাপফিউজ FAQ অনুসরণ করে পরিবর্তন করেছি ।

স্থাপনার পরে mvn cargo:run, আমি কীভাবে জানতে পারি যে প্রকৃত চলমান টমক্যাটটি সত্যই 7.0.27?

আমি এটিকে ত্রুটি পৃষ্ঠাতে দেখতে একটি ভুল ইউআরএল ( উদাহরণস্বরূপ লোকালহোস্ট: 8080 / dfsfsdf ) টাইপ করতাম তবে এখন এটি কিছুই দেখায় না।

আমার $CATALINA_HOMEনিজস্ব টমক্যাট 7.0.27 এ আমার পয়েন্টস। দুঃখিত, উল্লেখ করতে ভুলে গেছেন, এটি উইন্ডোজের জন্য

হালনাগাদ:

যেহেতু এই প্রশ্নটি কোনওরকম জনপ্রিয় হয়ে উঠেছে, আমি কেন তা গ্রহণযোগ্য উত্তরটি ব্যাখ্যা করতে চাই। সহজ, এটিই প্রথম যা আমার সমস্যার সমাধান করেছিল।

প্রশ্নের শিরোনামটি দেখে, @ টেক জাঙ্কি এবং @ সিসিপিইউ 100 এর সত্যই উত্তম উত্তর আছে, তবে আমার যে দৃশ্যের মুখোমুখি হয়েছিল তার জন্য নয়। (আমি জানতে mvn cargo:runচাইছিলাম কি আমার ইনস্টলড টমক্যাটটি চালায় বা কোনও "প্রকল্প এমবেডেড" টোমক্যাট) :)


1
আপনি যদি কোনও জেএসপি ফাইল আপলোড করতে পারেন তবে উদাহরণস্বরূপ কিছু তথ্য মুদ্রণ করতে পারেন: bestdesigns.co.in/blog/check-jsp-tomcat-version
wemu

অধিকার! আপনি উত্তর পেয়েছেন, এটি অবশ্যই আমি চাই 7.০.২7 দয়া করে এটি একটি উত্তর হিসাবে পোস্ট করুন
Yichaoz

উত্তর:


52

আপনি যদি কোনও জেএসপি ফাইল আপলোড করতে পারেন তবে উদাহরণস্বরূপ আপনি কিছু তথ্য মুদ্রণ করতে পারেন: 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

517

যদিও এটি সাম্প্রতিক নয়, আমি ভেবেছিলাম, আমার উত্তর এখনও অন্যকে সাহায্য করতে পারে:

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

11
একটি সামান্য বিট আরও নির্দিষ্ট হতে, সার্ভার / lib হবে উদাহরণস্বরূপ,/opt/tomcat/lib
কাই কারভার

4
বা উইন্ডোজ উদাহরণস্বরূপ,C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib
কাই কারভার

10
এখনও 2017 এ কাজ করছি my আমার সেন্টস 7 এ, আমাকে / usr / share / tomcat / lib এ যেতে হবে।
ম্যাথিউউ

একটি সোলারিস 10 সার্ভার, আমি একটি ত্রুটি পেয়েছি "থ্রেডে ব্যতিক্রম" প্রধান "java.lang.UnsupportedClassVersionError: .class ফাইলের খারাপ সংস্করণ নম্বর" যখন আমি কমান্ডটি চালাই। RHEL 7.2 এ আমি সঠিক আউটপুট পেয়েছি।
এসভি।

5
এটি সঠিক উত্তর হিসাবে ট্যাগ করা উচিত। টমক্যাট সংস্করণ নির্ধারণের জন্য আপনাকে কেন জেএসপি লিখতে এবং স্থাপন করা দরকার তা আমি দেখতে পাচ্ছি না। এই উত্তরের জন্য কেবল প্রোগ্রামারগুলি নয় যেমন সিস্টেম অ্যাডমিন ঠিক টমক্যাট সংস্করণটি জানতে চান, তার বিস্তৃত শ্রোতা থাকতে পারে।
ইথেরেল

99
  1. পার্স বা Tomcat_home / bin ডিরেক্টরীতে এবং নামে একজন স্ক্রিপ্টের জন্য বর্ণন নির্বাহ করার চেষ্টা করুন version.sh বা version.bat আপনার অপারেটিং সিস্টেম উপর নির্ভর করে।
  2. স্ক্রিপ্ট কার্যকর করুন ./version.shবাversion.bat

যদি ভার্সন.ব্যাট বা ভার্সন.শ না থাকে তবে জেআর ফাইলগুলি আনজিপ করার জন্য একটি সরঞ্জাম ব্যবহার করুন (om টমক্যাট \ সার্ভার \ লিব \ ক্যাটালিনা.জার) এবং org \ অ্যাপাচি \ ক্যাটালিনা \ ইউজার \ লিব \ ফাইলটি সার্ভারআইএনফো.প্রেপার্টিগুলি দেখুন। "server.info =" এর অধীনে সংস্করণটি সংজ্ঞায়িত করা হয়েছে।


দুঃখিত আমি উল্লেখ করতে ভুলে গেছি, আমি উইন্ডোজ এ আছি। তবে সমস্যাটি হ'ল আমি জানি না কোন ফোল্ডারের
টোমক্যাটটি

@ কোসেল আমি আপনার সংস্করণটি পরীক্ষা করতে আরও তথ্য যুক্ত করেছি তবে এটি আরও ম্যানুয়াল।
গ্রেপিট

1
আমি org \ অ্যাপাচি \ ক্যাটালিনা \ ইউজার \ সার্ভারআইএনফো.প্রোপার্টি (কোনও লিব প্যাকেজ ছিল না)
সংস্করণটি পেয়েছি

49

আপনার 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

40

আপনি কেবল http://localhost:8080/আপনার ওয়েব ব্রাউজারে খুলতে পারেন এবং এটি টমক্যাট স্বাগত পৃষ্ঠাটি খুলবে যা এতে টমক্যাট সংস্করণটি চলমান দেখায়:

Apache Tomcat/7.0.42
  • আমি ধরে নিয়েছি যে আপনার টোম্যাটটি 8080 বন্দরে চলছে

12

রিলিজ নোট ব্যবহার করে

মূল টমক্যাট ফোল্ডারে আপনি রিলিজ-নোট ফাইলটি খুঁজে পেতে পারেন যা নীচের লাইনগুলি (~ লাইন 20-21) রয়েছে:

                Apache Tomcat Version 8.0.22
                        Release Notes

অথবা আপনি কমান্ড লাইন ব্যবহার করে একই তথ্য পেতে পারেন :

  • উইন্ডোজ :

    type RELEASE-NOTES | find "Apache Tomcat Version"

    আউটপুট:

                 Apache Tomcat Version 8.0.22
  • লিনাক্স :

    cat RELEASE-NOTES | grep "Apache Tomcat Version"

    আউটপুট:

                 Apache Tomcat Version 8.0.22

12

টমকেট চলমান সংস্করণ

যদি আপনি এনভায়রনমেন্টমেন্ট ভেরিয়েবল -% ক্যাটালিনহোম% সেট করেন তবে উইন্ডোজ:

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

আউটপুট

সার্ভার সংস্করণ: অ্যাপাচি টমক্যাট / 8.0.28 সার্ভার নির্মিত: অক্টোবর 7 2015 18:25:21 ইউটিসি সার্ভার নম্বর: 8.0.28.0 ওএস নাম: উইন্ডোজ 7 ওএস সংস্করণ: 6.1 আর্কিটেকচার: এমডি 64 জেভিএম সংস্করণ: 1.8.0_111-বি 14 জেভিএম বিক্রেতার: ওরাকল কর্পোরেশন


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

যদি টমক্যাটটি পরিষেবা হিসাবে ইনস্টল করা থাকে:

#sudo /etc/init.d/tomcat version

এখানে * নিক্সে। আমার মুক্তির নোট ফাইলটি অনুপস্থিত ছিল। sudoকমান্ড চালানো আমার পক্ষে কাজ করেছে
কুণাল

10

টমক্যাট সংস্করণটি খুঁজতে, এই ফাইলটি খুঁজে নিন - উইন্ডোজের জন্য * নিক্সের জন্য version.sh বা version.bat। এই version.sh ফাইলটি সাধারণত টমক্যাট বিন ফোল্ডারে থাকে।

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

বিঃদ্রঃ

ভার্সন.শ ফাইলটি কোথায় তা আপনি যদি নিশ্চিত না হন তবে এই আদেশটি ব্যবহার করে দেখুন:

sudo find / -name "version.sh"

টোম্যাট 7 সম্পর্কে সমস্ত কিছু সন্ধান করুন।

sudo find / -name "tomcat7"

8

এই একটি কমান্ড যা আপনি প্রায় সমস্ত কিছু পরীক্ষা করতে পারেন:

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

অথবা

tomcat/bin/catalina.sh version

এবং আউটপুট এই মত দেখাচ্ছে

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

নিম্নলিখিত চালান

/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


5

আমি জানি এটির জন্য খুব দেরী হয়েছে তবে এটি কার্যকর হতে পারে: আপনি যদি জাভা কোড থেকে অ্যাপাচি টমক্যাট সার্ভার সংস্করণটি জানার চেষ্টা করেন তবে আপনি এটি ব্যবহার করতে পারেন:

একটি এইচটিপি সার্ভলেট থেকে:

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

সার্ভলেট কনটেক্সটলিস্টনার থেকে:

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

4

টমক্যাটটি যদি পরিষেবা হিসাবে ইনস্টল করা থাকে তবে চেষ্টা করুন:

sudo /etc/init.d/tomcat version

পরিষেবার প্রকৃত নাম সহ "টমক্যাট" সরিয়ে আনা হবে।


3

লিনাক্সে টমক্যাট সংস্করণটি পরীক্ষা করতে

cd /opt/tomcat/bin

./catalina.sh version

এটি কাজ করে, তবে আপনাকে প্রতিবার 'সুডো' ব্যবহার করতে হবে, তাই না?
সানডুন

2

আপনার টমক্যাট হোম পৃষ্ঠা খুলুন (সাধারণত localhost:8080)

আপনি এরকম কিছু দেখতে পাবেন:

এখানে চিত্র বর্ণনা লিখুন



1

প্রবেশ করুন 404.jspবা non-existent.jsp

পৃষ্ঠার নীচে টমক্যাট / জেবস সংস্করণ নম্বর পান।


1

হ্যাকারদের থেকে টমক্যাট সুরক্ষার জন্য, টমক্যাট সংস্করণ তথ্য গোপন করার জন্য আমরা কয়েকটি পদক্ষেপ চেষ্টা করার পরামর্শ দেওয়া হয়। OWASP প্রকল্পটি কয়েকটি পদক্ষেপের পরামর্শ দেয় sugges https://www.owasp.org/index.php/Securing_tomcat । যদি কোনও টমক্যাট ইনস্টলেশনটি এইভাবে সুরক্ষিত থাকে, তবে উপরের উত্তরগুলির মধ্যে কেবল 1 টি টমক্যাটটির সংস্করণ প্রদর্শন করবে।
উদাহরণস্বরূপ $ TOMCAT_HOME \ রিলিজ-নোট ফাইলের মধ্য দিয়ে চলছে যেখানে সংস্করণ নম্বরটি পরিষ্কারভাবে ঘোষণা করা হয়েছে।

আমার এমন একটি সুরক্ষিত সার্ভার ছিল এবং কেবল রিলিজ-নোট ফাইল টমক্যাটটির সংস্করণ প্রকাশ করেছিল। অন্যান্য সমস্ত কৌশল সংস্করণ তথ্য প্রকাশ করতে ব্যর্থ হয়েছে।


1

আমরা একটি উইন্ডোজ পরিবেশে চলছি এবং জাভা পরিবেশের বাইরে টমক্যাট সংস্করণ পাওয়ার জন্য আমাকে একটি উপায় খুঁজে বের করতে হয়েছিল। সংস্করণ না জেনে আমি ডিরেক্টরিগুলি নির্ধারণ করতে পারিনি। অবশেষে টমক্যাট পরিষেবাটি ব্যবহার করে আমি সর্বোত্তম উপায়টি খুঁজে পেয়েছি:

সি: \ টেম্পে> এসসি কোয়েরি সন্ধান করুন / আমি "টমক্যাট"
SERVICE_NAME:
টমক্যাট 6 ডিআইআইএসএল_NAME: অ্যাপাচি টমক্যাট 6.0 টমক্যাট 6


0

উইন্ডোজ টাস্ক ম্যানেজার> প্রসেসস> টমক্যাট সন্ধান করুন> ডান ক্লিক করুন> ফাইলের অবস্থান খুলুন> আপনি যদি টমক্যাট 7 ডাব্লু চালিত হন তবে এটি বিবরণে দৃশ্যমান।

উইন্ডোজ ভিস্তা / 7 এ না থাকলে টসক্যাটটি প্রসেসগুলিতে দৃশ্যমান হওয়ার জন্য চলমান উচিত টাস্ক ম্যানেজার> ট্যাব (পরিষেবাদি) এ টমক্যাট এটি শুরু করে এবং তারপরে প্রক্রিয়াগুলি সন্ধান করুন।


আমি টাস্ক ম্যানেজারের কাছে গিয়েছিলাম, কেবলমাত্র প্রক্রিয়াটি দেখানো হচ্ছে tomcat7w.exe এর পরিবর্তে java.exe। আমি যদি java.exe মেরে ফেলি তবে সার্ভারটি মারা যায়
Yichaoz

0

ইউনিক্স-জাতীয় পরিবেশে, আমি আসল চলমান প্রক্রিয়া কমান্ড লাইনটি পরীক্ষা করার পরামর্শও দিই:

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

(অপারেটিং সিস্টেম) এনভায়রনমেন্ট ভেরিয়েবল এবং (জাভা) সিস্টেমের বৈশিষ্ট্যগুলি অপ্রত্যাশিত মানগুলিতে সেট হওয়ার কারণে কেউ সূক্ষ্ম অদ্ভুত আচরণে চলতে পারে। আমার একটা পরিস্থিতি ছিল যেখানে পুরানো টমক্যাটের কারণে setenv.shক্লাসপ্যাটে টমক্যাট 7 থেকে ক্লাস শুরু হয়েছিল একটি টমক্যাট 8। প্রক্রিয়া কমান্ড লাইন বিকল্প যেমন যেমন -Dcatalina.base, -Dcatalina.homeএবং -classpathবুদ্ধিমান তা নিশ্চিত করুন।


0

কেবল টমকাট শুরু করুন এবং এর মধ্যে " সার্ভার সংস্করণ নাম " সন্ধান করুন catalina.logsএবং আপনি আপনার টমক্যাটের সংস্করণ পাবেন। উদাহরণ স্বরূপ:

"মার্চ 07, 2019 11:25:40 এএম org.apache.catalina.startup. ভার্সন লোগারলিস্টার লগ ইনফো: সার্ভার সংস্করণ নাম: অ্যাপাচি টমক্যাট / 9.0.16 "


0

আপনি তার স্থিতি পৃষ্ঠার মাধ্যমে সার্ভারের তথ্যটি সন্ধান করতে পারেন:

{running-tomcat-url}/manager/status

সেই পৃষ্ঠাতে আপনি জাভাটির যে সংস্করণটি টমক্যাটটি চালাচ্ছেন তা দেখতে পাচ্ছেন

দ্রষ্টব্য: আমি টমক্যাট 6 এবং জেআরই 7 সামঞ্জস্যতার ইস্যুতেও এই উত্তরটি পেস্ট করেছি । অসমর্থিত মেজর.মিনোর সংস্করণ 51.0


ম্যানেজার ইনস্টল থাকা অবস্থায় এটি কি কেবল নয়? আমি জানি ডিফল্টটি কিন্তু আমরা তা করি না
ড্যানিকেেকে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.