톰캣 시작시 포트 충돌 에러
톰캣을 시작할 때 다음과 같이 포트 에러가 발생할 수 있습니다.
이유는 정말 단순하게 톰캣이 사용하는 8080포트를 이미 다른 프로세스에서 점유하고 있기 때문입니다.

14-Feb-2018 18:18:30.646 정보 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-apr-8080"]
14-Feb-2018 18:18:30.655 심각 [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]
java.lang.Exception: Socket bind failed: [730013] 
        atorg.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:471)
        atorg.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:748)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:476)
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:568)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:869)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:580)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:603)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)

14-Feb-2018 18:18:30.657 심각 [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:568)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:869)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:580)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:603)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:962)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)


해결 방법
톰캣을 실행시키려면 기존에 8080 포트를 사용하는 프로세스를 종료시켜 주어야 합니다.
만약 8080포트를 사용하고 있는 프로세스가 중요한 프로세스인 경우 해당 프로세스의 사용 포트를 변경해 주거나, 현재 실행시키려는 톰캣의 포트를 변경하시기 바랍니다. -> [Tomcat] 톰캣 8080 포트 변경하기

 


8080포트를 사용하는 프로세스 중지하기

1. 키보드에서 윈도우 시작 버튼 + R 을 눌러 실행창을 띄웁니다.
2. cmd 라고 치고 확인을 누릅니다.



3. netstat -ano 라고 치고 엔터를 눌러줍니다.


4. 다음과 같이 네트워크 상태가 나옵니다.



5. 현재 목록 중 8080 포트 를 사용중인 프로세스를 찾습니다. 

아래로 쭈욱 내리다 보니 127.0.0.1:8080 즉 내 로컬에서 8080포트를 사용중이고 해당 포트를 사용중인 프로세스의 PID는 4920으로 확인되었습니다.





6. taskkill /F /PID 4920 명령어로 해당 프로세스를 종료 합니다.



7. 이제 8080포트를 사용하는 프로세스를 강제로 죽였으니 서버를 시작해보면 정상 작동할 것입니다.
블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,