2012-09-18 21 views
22

मैं एक जावा वेब परियोजना को चलाने के लिए निम्न सेटिंग्स किया है लेकिन किसी भी तरह मेरी बिलाव ग्रहण से शुरू नहीं कर रहा है:बिलाव शुरू नहीं (फेंक java.net.BindException:)

JAVA_HOME : C:\Program Files\Java\jdk1.6.0_03 
PATH : C:\Program Files\Java\jdk1.6.0_03\bin 
CATALINA_HOME : D:\javaworkspaces\apache-tomcat-7.0.27 

तब के रूप में की आवश्यकता है, मैं ग्रहण से एक नया सर्वर स्थापित करें और टॉमकैट स्थापना पथ दें।

जैसा कि कुछ मंचों में सलाह दी गई है, मैंने कक्षा पथ में tomcat-juli.jar जोड़ा है।
जब मैं टॉमकैट सर्वर शुरू करने का प्रयास करता हूं, तो मुझे यह त्रुटि मिलती है, मुझे त्रुटि मिलती है क्योंकि टॉमकैट 45 सेकंड में नहीं दिख रहा है।

Jul 26, 2012 5:49:34 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in  production environments was not found on the java.library.path: C:\Program Files\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Java\jdk1.6.0_03\bin;D:\eclipse-jee-indigo-SR2-win32\eclipse;;. 
Jul 26, 2012 5:49:34 PM org.apache.tomcat.util.digester.SetPropertiesRule 
begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property   'source' to 'org.eclipse.jst.j2ee.server:JEE_Day01' did not find a matching property. 
Jul 26, 2012 5:49:34 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-80"] 
Jul 26, 2012 5:49:35 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
Jul 26, 2012 5:49:35 PM org.apache.coyote.AbstractProtocol init 
SEVERE: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8009"] 
java.net.BindException: Address already in use: JVM_Bind <null>:8009 
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:393) 
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:566) 
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:417) 
at org.apache.catalina.connector.Connector.initInternal(Connector.java:956) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:624) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:649) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449) 
Caused by: java.net.BindException: Address already in use: JVM_Bind 
at java.net.PlainSocketImpl.socketBind(Native Method) 
at java.net.PlainSocketImpl.bind(Unknown Source) 
at java.net.ServerSocket.bind(Unknown Source) 
at java.net.ServerSocket.<init>(Unknown Source) 
at java.net.ServerSocket.<init>(Unknown Source) 
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49) 
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:380) 
... 16 more 
Jul 26, 2012 5:49:35 PM org.apache.catalina.core.StandardService initInternal  
    SEVERE: Failed to initialize connector [Connector[AJP/1.3-8009]] 
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[AJP/1.3-8009]] 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106) 
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:624) 
at org.apache.catalina.startup.Catalina.load(Catalina.java:649) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449) 
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed 
at org.apache.catalina.connector.Connector.initInternal(Connector.java:958) 
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) 
... 12 more 

मैं कई मंचों में जाना जाता है, लेकिन बुरी तरह से स्थिति के साथ फंस कर रहा हूँ:

मैं निम्नलिखित लॉग संदेश मिलता है। कृपया मेरा मार्ग दर्शन कीजिए।

उत्तर

22

इन पंक्तियों:

SEVERE: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8009"] 
java.net.BindException: Address already in use: JVM_Bind <null>:8009 

का संकेत देने वाले बंदरगाह 800 9 पर पहले से ही एक सेवा चल रही है। क्या एक टोमकैट (एजेपी के साथ) पहले से चल रहा है?

सेवा 8009 पर चल रहा है की जरूरत है अगर आप कनेक्टर विन्यास server.xml में कुछ करने के लिए नीचे की तरह बदल सकता है:

<Connector port="8089" protocol="AJP/1.3" redirectPort="8443" /> 
+0

thanx काम करता है .. इस प्रक्रिया को मारने के लिए – user1649415

10

इसमें कहा गया है पोर्ट संख्या 8009 पहले से ही अपने ओएस try searching for that process and stop it या अपने बिल्ला बनाने पर चल रहे कुछ अन्य प्रक्रिया के कब्जे में है अलग (मुक्त) बंदरगाह पर चलाने के लिए

+0

thanx एक टन .. आखिरकार यह – user1649415

5

java.net.BindException: पहले से प्रयोग में पता: JVM_Bind: 8009

इसका मतलब है कि कुछ अन्य प्रक्रिया पहले से ही इस बंदरगाह का उपयोग कर रही है। क्या यह एक और टोमकैट उदाहरण हो सकता है?

0

प्रयास करें: http: // localhost: 8089 अगर यह काम नहीं कर रहा है (या) इस प्रयास करें: सेट करें: JRE_HOME: C: \ Program Files \ जावा \ jre1.5.0_11 (JRE के अपने संस्करण पर निर्भर करते हैं) और सी: \ प्रोग्राम फ़ाइलें \ जावा \ jre1.5.0_11 (जेआरई के अपने संस्करण पर निर्भर करें) \ bin से पथ ग्रहण-> विंडोज प्राथमिकताओं पर जाएं: सर्वर-> रनटाइम पर्यावरण ने जोड़ा सर्वर और रेफ्रेश हटाएं और नया टॉमकैटसेवर

जोड़ें
0

टीआईएल: सर्वर पर कोई और व्यक्ति पोर्ट 80 पर आईआईएस शुरू कर सकता है और किसी को भी नहीं बता सकता है।
यदि आपके पास उसी पोर्ट के लिए आपका टॉमकैट कॉन्फ़िगर किया गया है, तो यह इस त्रुटि की रिपोर्ट भी करेगा।
आईआईएस या टॉमकैट पर बंदरगाह को बदलने की आवश्यकता होगी।

आईआईएस में बंदरगाह को संशोधित करने के लिए:
प्रशासनिक उपकरण | इंटरनेट इनफॉर्मेशन सर्विसेज (आईआईएस) प्रबंधक
डिफ़ॉल्ट वेब साइट पर राइट क्लिक करें।
ओपन conf \ सर्वर: संपादित करें बाइंडिंग ... पोर्ट बदलें

-या-

बिलाव में बंदरगाह को संशोधित करने के।एक्सएमएल और टैग में पोर्ट मान अद्यतन:

<Connector port="80" protocol="HTTP/1.1" 
    connectionTimeout="20000" 
    redirectPort="8443" 
    URIEncoding="UTF-8"/> 

पुनः प्रारंभ बिलाव

2 वेब सेवाओं का आनंद लें।

6

इस बंदरगाह अर्थात 8009. उपयोग

netstat -a -o -n

प्रक्रिया के पीआईडी ​​देखने के लिए पर संबंधित (सुनने) प्रक्रिया मार डालते हैं। यह टीसीपी [::]: 800 9 [::]: 0 LISTENING 892

प्रक्रिया को मारने के लिए टास्ककिल कमांड का उपयोग कर सकता है। उदाहरण:

taskkill /F /PID 892

+0

काम करता है, आपको व्यवस्थापक अधिकारों की आवश्यकता हो सकती है। ऐसा करने के लिए, विंडोज़ में "cmd" ढूंढें खोज बॉक्स शुरू करें, "cmd.exe" पर राइट-क्लिक करें और "व्यवस्थापक के रूप में खोलें" चुनें –

0

कुछ और उपयोग कर रहा है बंदरगाह 8009.

या तो बात यह है कि 8009 8009

से एक और पोर्ट का उपयोग करने का उपयोग कर या अपने server.xml बदल जाता है शट डाउन
0

यह आमतौर पर तब होता है जब टोमकैट के कनेक्टर/शट डाउन पोर्ट का उपयोग पहले से ही किया जा रहा है। पहले, shutdown.bat (कभी कभी हम बाहर याद आती है कि बिल्ला का एक उदाहरण पहले से ही चल रहा है) इसके बाद, आदेश में शीघ्र रन

netstat -aon | findstr 0.0:<your port number which is giving bind exception> 

आवेदन है कि वर्तमान में उपयोग कर रहा है की पीआईडी ​​प्राप्त करने के लिए चलाने के लिए अपनी बंदरगाह। या तो उस आवेदन को मारने या कुछ अन्य बंदरगाह जो सूचीबद्ध नहीं है का उपयोग करें जब आप चलाने

netstat -a -o -n 
2

आप server.port बदलने के लिए इस समस्या को ठीक करने के लिए नहीं होना चाहिए ...

Mac/Unix/लिनक्स उपयोगकर्ता: यदि आप टॉमकैट को पुनरारंभ करने के बाद, और यह समस्या अभी भी मौजूद है, तो शायद यह इसलिए है क्योंकि टॉमकैट को अनुचित तरीके से बंद कर दिया गया था और संसाधन अभी भी इसके साथ जुड़े हुए हैं जो अब लॉक हैं। आप उन संसाधनों के PIDs देख सकते हैं इस आदेश चलाकर:

lsof | grep tomcat 

का उपयोग कर उन प्रक्रियाओं को समाप्त:

kill -15 <PID> 

यह आपकी समस्या का समाधान करना चाहिए।

अवधि (-15) के बजाय SIGKILL से प्रक्रिया (-9) बेहतर है के लिए मार -15 आदेश का उपयोग करना। -15 स्विच प्रक्रिया को सिग्नल चरणों को शुरू करने और बाध्य संसाधनों को साफ करने के लिए सिग्नल भेजता है।

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

  • कोई संबंधित समस्या नहीं^_^