2011-04-18 16 views
26

से इनकार कर दिया, जबकि मैं टोमकैट सर्वर को रोकने की कोशिश करता हूं, जिससे यह एक त्रुटि दे रहा है।अपाचे टॉमकैट: java.net.ConnectException: कनेक्शन ने

[[email protected] classes]# service tomcat restart 
Stopping Tomcat service: Using CATALINA_BASE: /opt/tomcat 
Using CATALINA_HOME: /opt/tomcat 
Using CATALINA_TMPDIR: /opt/tomcat/temp 
Using JRE_HOME:  /usr 
Apr 17, 2011 10:11:53 PM org.apache.catalina.startup.Catalina stopServer 
SEVERE: Catalina.stop: 
java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:381) 
    at java.net.Socket.connect(Socket.java:537) 
    at java.net.Socket.connect(Socket.java:487) 
    at java.net.Socket.<init>(Socket.java:384) 
    at java.net.Socket.<init>(Socket.java:198) 
    at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:421) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:337) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415) 
                  [ OK ] 

Starting Tomcat service: Using CATALINA_BASE: /opt/tomcat 
Using CATALINA_HOME: /opt/tomcat 
Using CATALINA_TMPDIR: /opt/tomcat/temp 
Using JRE_HOME:  /usr 

क्या कोई मुझे इस समस्या को ठीक करने में मदद कर सकता है?

+0

यदि आप इसे शुरू करने के बाद इसे बंद करने का प्रयास करते हैं तो ऐसा हो सकता है। सर्वर को पूरी तरह से बूट करने में कुछ समय लगता है। चल रही प्रक्रिया की जांच करने का प्रयास करें या सर्वर यूआरएल पर जाएं। – amertkara

उत्तर

5

क्या आपके द्वारा इसे पुनरारंभ करने से पहले टोमकैट चल रहा था? क्या इस बंदरगाह पर कोई और ऐप सुन रहा था?

अपवाद फेंक दिया गया है क्योंकि कमांड पोर्ट पर कोई भी नहीं सुन रहा था ($tomcat_home/conf/server.xml में देखें)।

26

मैंने इसे समझने की कोशिश करते समय बहुत सारे अपर्याप्त उत्तरों को देखा है। सामान्य प्रतिक्रिया "आप ऐसी चीज को रोकने की कोशिश कर रहे हैं जो शुरू नहीं हुई है" या "आपको आवश्यक पोर्ट बंदरगाह पर कुछ अन्य प्रोग्राम चल रहा है"।

मेरे लिए समस्या मेरी फ़ायरवॉल बन गई। मैंने यह भी नहीं माना था, लेकिन बंदरगाह 8005 (शटडाउन के लिए उपयोग किया जाने वाला बंदरगाह, धन्यवाद दिमाग), अवरुद्ध कर दिया गया था। मैंने इसे बदल दिया, और अब, कोई और त्रुटि नहीं। सौभाग्य।

+0

वही बंदरगाह मुद्दा यहाँ! धन्यवाद! – Maitreya

1

सुनिश्चित नहीं है कि आपकी समस्या ठीक हो गई है और कैसे। लेकिन मुझे टॉमकैट इंस्टेंस चलाने की कोशिश करते समय एक ही समस्या का सामना करना पड़ा।

  • बंदरगाह उपयोग में नहीं था।
  • कोई फ़ायरवॉल समस्या नहीं थी।
  • टोमकैट इंस्टेंस ठीक शुरू हो रहा था।

मैंने कस्टम शटडाउन स्क्रिप्ट बदल दी और यह समस्या ठीक हो गई। पुरानी स्क्रिप्ट: -

निर्यात CATALINA_HOME =/घर/lrsprod/ELA/tomcat6/अपाचे-बिल्ला-6.0.35 $ CATALINA_HOME/bin/catalina.sh रोक

जोड़ा गया Catalina आधार के लिए यह।

निर्यात CATALINA_BASE =/घर/lrsprod/ELA/tomcat6/ela_instance निर्यात CATALINA_HOME =/घर/lrsprod/ELA/tomcat6/अपाचे-बिल्ला-6.0.35 $ CATALINA_HOME/bin/catalina.sh रोक

यह चाल है।

0

मुझे भी इस समस्या का सामना करना पड़ा। आप इन चरणों में से किसी की कोशिश कर सकते हैं: एक और बिल्ला उदाहरण है या नहीं अपने मशीन में चल रहा है

4

बिलाव के अपने संस्करण के आधार पर, यह एक साधारण सी समस्या (बग) 0-बाइट लॉग फ़ाइल के साथ हो सकता है। /var/log/tomcatX.Y पर एक नज़र डालें जहां X.Y आपका संस्करण है जिसके साथ आप काम कर रहे हैं और जांचें कि लॉग फ़ाइल catalina.out पढ़ी गई है और लिखने योग्य है। यदि इसमें 0 बाइट है और यह सुलभ नहीं है, तो बस इसे हटाएं और टॉमकैट को फिर से शुरू करें। इसने हमारे लिए कुछ बार पहले ही समस्या हल की है।

1

आप बंद करो और के साथ फिर से शुरू करने की कोशिश कर सकते हैं:

$ cd /path/apache-tomcat x.x.x/bin 
तो

$ sh shutdown.sh 

जब सफलतापूर्वक अंतिम चरण आप कमांड के साथ अपने बिल्ला और Catalina को चालू करना होगा किया

$ sh startup.sh 

मैं इस समस्या के साथ अपनी समस्या को हल करने में कामयाब रहा

-1

एक और संभावित मूल कारण यह है कि आपका टोमकैट अभी तक पूरी तरह से शुरू नहीं हुआ है।

आप एक ps -ef| grep apache करते हैं, तो आप सर्वर चल रहा है देखना होगा और यदि आप catalina.out जाँच, यह है कि सर्वर 123ms में प्रारंभ दिखाएगा - लेकिन यह अभी भी अपने webapps निर्देशिका में अनुप्रयोगों को विस्तृत किया जा सकता है।

0

इस कनेक्शन से इनकार करने की समस्या के लिए एक और स्पष्टीकरण है, जिसे मैंने ऊपर दिए गए उत्तरों से याद किया। मेरे मामले में मेरे पास संदर्भ श्रोता (contextInitialized में) से चलने वाला थ्रेड चल रहा था (क्वार्ट्ज शेड्यूलर), कभी भी रोका नहीं जाना चाहिए (contextDestroyed में)।

बदले में सर्वर पोर्ट बंद होने का कारण बन गया, जहां कंटेनर चल रहा था (इसलिए: सर्वर पोर्ट पर कनेक्शन अस्वीकार कर दिया गया था)।

मैंने इसे contextDestroyed में क्वार्ट्ज को रोकने के लिए तय किया और मुझे तब से इस समस्या का अनुभव नहीं हुआ।

इसी तरह के मुद्दों के लिए यहाँ देखें: Tomcat doesn't stop. How can I debug this?

1

इस अपवाद के अर्थ यहां समझाया गया है: https://bz.apache.org/bugzilla/show_bug.cgi?id=27829

सारांश: जावा मर जाता है, बिलाव हुक को बंद कर दिया जाता है, अपवाद फेंक दिया है।

तो अगर फ़ायरवॉल शटडाउन संदेश को टॉमकैट तक पहुंचने से रोकता है, तो जावा अंततः पहले मर जाएगा (सिस्टम रीबूट/शटडाउन के दौरान पूर्व), और अपवाद दिखाई देगा।

अन्य संभावनाएं हैं।

मेरे मामले में, मेरी समस्या में मेरी initscript (Linux) गलत तरीके से स्थापित होने के साथ कुछ करना था। उस निहित जावा को ओएस द्वारा शट डाउन/रीबूट के दौरान मार दिया गया था और स्क्रिप्ट के परिणामस्वरूप नहीं। इस के रूप में सरल समाधान:

find /etc/rc.d | grep initscript | sort 
/etc/rc.d/init.d/initscript 
/etc/rc.d/rc2.d/S85initscript 
/etc/rc.d/rc3.d/S85initscript 
/etc/rc.d/rc4.d/S85initscript 
/etc/rc.d/rc5.d/S85initscript 

ठीक करने के बाद:

find /etc/rc.d | grep initscript | sort 
/etc/rc.d/init.d/initscript 
/etc/rc.d/rc0.d/K15initscript 
/etc/rc.d/rc1.d/K15initscript 
/etc/rc.d/rc2.d/K15initscript 
/etc/rc.d/rc3.d/K15initscript 
/etc/rc.d/rc4.d/K15initscript 
/etc/rc.d/rc5.d/S85initscript 
/etc/rc.d/rc6.d/K15initscript 

निष्कर्ष: यदि आप इस मिल

chkconfig --del initscript 
chkconfig --add initscript 

ठीक इससे पहले कि मैं rc.d में निम्नलिखित था अपवाद, सुनिश्चित करें कि जावा को समाप्त होने के परिणामस्वरूप टॉमकैट ठीक से बंद हो गया है। अपनी फ़ायरवॉल, शट डाउन स्क्रिप्ट आदि देखें।

संबंधित मुद्दे