2011-12-07 22 views
6

मैं अपवाद हो रही है जो है में पोर्ट 8083:java.lang.Exception: पहले से ही कंसोल पर उपयोग

java.lang.Exception: Port 8083 already in use. 

कैसे इस अपवाद को हल करने? अगर मुझे 8083 पोर्ट का उपयोग करने वाली कौन सी सेवा मिल जाएगी तो मैं उस सेवा को रोक सकता हूं और इस तरह से मैं इस समस्या को खत्म कर सकता हूं।

आपकी मदद के लिए धन्यवाद!

+0

कैसे हो रहे हैं रहे हैं आपको यह अपवाद मिल रहा है? और आप किस ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं? हम यहां अनुमान नहीं लगा सकते हैं। –

+7

'netstat -a' –

+0

आज़माएं कृपया नीचे दिए गए मेरे उत्तर को स्वीकार करने पर विचार करें यदि यह सहायक था – Gray

उत्तर

10

java.lang.Exception: पोर्ट 8083 पहले से ही उपयोग में है।

त्रुटि का अर्थ है कि किसी अन्य एप्लिकेशन में पहले से ही उस पोर्ट को बाध्य किया गया है ताकि आप इसका उपयोग न कर सकें। आम तौर पर इसका मतलब है कि एक सर्वर चल रहा है (या बाहर निकल रहा है) लेकिन अभी भी विशिष्ट बंदरगाह खुला है। अक्सर यह त्रुटि तब दी जाती है जब आप एक सर्वर को बंद करने और नया संस्करण लाने की कोशिश कर रहे हैं लेकिन नया सर्वर शुरू होने पर पहला सर्वर कुल नहीं है। आपको सर्वर को प्रश्न में ढूंढना होगा और आपको kill -9 या कुछ का उपयोग करके इसे मारना पड़ सकता है।

एक अच्छा उपकरण पता लगाने के लिए जो आवेदन बंदरगाह खुला lsof जाता है। यह कम से कम यूनिक्स (लिनक्स) और मैकॉक्स के तहत काम करना चाहिए।

lsof -i :8083 

lsof एक सिस्टम पर खुला फ़ाइलें लिस्टिंग के लिए है, लेकिन -i विकल्प इंटरनेट पते के लिए है:

-i [i] This option selects the listing of files any of whose Internet 
     address matches the address specified in i. 
     [46][protocol][@hostname|hostaddr][:service|port] 
0

या तो प्रक्रिया है जो पोर्ट 8083 उपयोग कर रहा है समाप्त करने या कोई अन्य पोर्ट पर चलाने के लिए आपके आवेदन कॉन्फ़िगर करें। स्मार्ट एप्लिकेशन स्वचालित रूप से वैकल्पिक पोर्ट का उपयोग करने का प्रयास करते हैं।

5

अपवाद फेंक दिया जाता है क्योंकि आप एक बंदरगाह है कि पहले से ही अन्य प्रक्रिया द्वारा उपयोग में करने के लिए बाध्य करने की कोशिश कर रहे हैं।

कमांड लाइन से netstat -a का उपयोग करके आप और खुले बंदरगाहों की एक सूची प्रक्रिया है कि उन्हें उपयोग कर रहा है दिखाएगा। आप इसे मार सकते हैं।

अद्यतन:

विंडोज पर आप प्रक्रिया ID कि कनेक्शन का मालिक के साथ उपयोग बंदरगाहों में सभी सूचीबद्ध करने के लिए netstat -ao उपयोग कर सकते हैं।

लिनक्स पर आप प्रक्रिया id/कार्यक्रम का नाम सूची netstat -p उपयोग कर सकते हैं।

+0

क्या ओएस' नेटस्टैट-ए 'आपको पोर्ट को खोलने वाली प्रक्रियाओं को दिखाता है? मदद के लिए – Gray

+0

धन्यवाद! –

+2

@ ग्रे मुझे लगता है कि एक-फ्लैग है जिसे आप –

1

अपवाद का अर्थ है: पहले से ही एक खुला पोर्ट '8083' है। आप इसे उस सेवा को रोकने या स्वयं को एक अलग बंदरगाह का उपयोग करके हल कर सकते हैं।

मुझे लगता है कि होता है कि अपनी खुद की सेवा पहले से ही चल रहा है जब आप इसे शुरू करने की कोशिश है, तो नया एक शुरू करने से पहले पुराने उदाहरण बंद करो।

(मैं बिलाव 8080 पर चलता है और कभी कभी लोगों को 8083 के लिए है कि बदलने के लिए, लेकिन इसकी असंभव किसी को पता करने के लिए क्या सेवा उस पोर्ट का उपयोग कर अपने मशीन पर चलता है पता है।)

0

आप की तैनाती के लिए एक सर्वर शुरू कर रहे हैं, तो आपके आवेदन यह हो सकता है कि कोई अन्य प्रक्रिया या एप्लिकेशन उस बंदरगाह का उपयोग कर रहा है। आउटलुक, स्काइप या अन्य एप्लिकेशन कभी-कभी मेरे काम पर करते हैं। उस कनेक्शन को मारने और अपने सर्वर को पुनरारंभ करने के लिए CPorts जैसे प्रोग्राम का उपयोग करें।

6

मैं एक समय में हर एक बार JBoss सर्वर के साथ इस मिलता है। यह सहज नहीं है कि आपको जावा को पुनरारंभ करने की आवश्यकता होगी, लेकिन उपर्युक्त विधियां काम नहीं करतीं।

लिए मैक ओएस एक्स:

धीमा

  1. ओपन गतिविधि मॉनिटर।
  2. "जावा"
  3. द्वारा फ़िल्टर करें किसी भी प्रक्रिया (आमतौर पर केवल एक) छोड़ें।
  4. अपने सर्वर को पुनरारंभ करें।

फास्ट

ps aux | grep 'java' वर्तमान जावा प्रक्रियाओं और उनकी आईडी सूची।

kill -9 process_id_goes_here

0

एक और संभावना नहीं है: आप गलत आईपी पते के लिए बाध्य करने की कोशिश कर किया जा सकता है - JBoss बंदरगाह करने के लिए बाध्य करने में असमर्थ होने के रूप में इस रिपोर्ट करेंगे।

अपने run.sh के खिलाफ अपना -b विकल्प जांचें और सुनिश्चित करें कि यह या तो 0.0.0.0 या सर्वर का IP या होस्टनाम है।
- यदि यह 0.0.0.0 है, तो समस्या यह है कि पोर्ट उपयोग में है।
- यदि यह आईपी है, सत्यापित करें कि इसे का उपयोग सही आईपी है/sbin/ifconfig (या Windows पर ipconfig)
- यदि यह होस्ट नाम है, तो
    टेलनेट hostname_here
    चलाने के लिए और सत्यापित करें कि आईपी ​​पता जो हल करता है वह सही आईपी पता है।

मेरे पास यह सही मुद्दा था और मैंने पाया कि किसी ने/etc/hosts फ़ाइल में गलत आईपी पता लगाया था। एक बार जब मैंने फाइल तय की, तो जेबॉस ठीक शुरू हुआ।

0

ग्रहण में, यदि आपको यह त्रुटि मिली है, तो इसका मतलब है कि एक ही बंदरगाह का उपयोग कर एक या दो ग्रहण उदाहरण हैं।

समाधान आपके ऑपरेटिंग सिस्टम के प्रोसेस मैनेजर पर जाता है और ग्रहण और जावा प्रक्रियाओं को मारता है।

0

यकीन है कि बंदरगाहों फ़ाइल conf/bindingservices.beans/META-INF/बाइंडिंग-jboss-beans.xml में दो JBoss उदाहरणों पर विभिन्न

लगभग 10 बंदरगाहों को बदलने के लिए

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