본문 바로가기
개발/Tomcat

Eclipse Tomcat 구동 에러

by Neya31 2025. 1. 19.
728x90
반응형
Failed to initialize end point associated with ProtocolHandler ["ajp-nio-8009"] java.lang.IllegalArgumentException: timeout < 0

 

위 오류는 Apache Tomcat에서 AJP(Apache JServ Protocol) 커넥터 설정과 관련된 문제입니다. 특히 timeout 값이 잘못 설정되었거나 지원되지 않는 음수 값으로 설정되어 발생할 수 있습니다. 이를 해결하려면 다음 단계를 따라 수정해 보세요.

1. Tomcat의 server.xml 설정 확인

Tomcat의 server.xml 파일에서 AJP 커넥터(<Connector protocol="AJP/1.3" ... />)를 확인하세요. 예를 들어:

 
<Connector protocol="AJP/1.3"
			port="8009"
            redirectPort="8443"
            secretRequired="true"
            connectionTimeout="20000" />
 
 

connectionTimeout 또는 유사한 속성의 값이 음수로 설정되어 있는지 확인하세요. 음수 값은 허용되지 않습니다. connectionTimeout은 밀리초 단위로 타임아웃 시간을 지정하며, 0으로 설정하면 무한 대기를 의미합니다.

2. timeout 설정 수정

다음과 같은 설정이 있으면 수정하세요.

  • timeout="-1" → 이 값은 유효하지 않습니다. 대신 양수로 수정하거나 제거하세요.
  • 유효한 설정 예시:
    connectionTimeout="20000"

3. Tomcat 버전 확인

Tomcat 버전에 따라 AJP 설정이 약간씩 다를 수 있습니다. 특히 Tomcat 9 이상부터는 AJP 커넥터에 대해 보안 설정이 강화되었습니다. 최신 Tomcat을 사용 중이라면 secretRequired="true" 속성을 추가로 설정하고, AJP를 사용하지 않는다면 비활성화하는 것도 고려하세요.

4. AJP 포트 충돌 확인

AJP 커넥터가 사용하는 8009 포트가 다른 애플리케이션이나 프로세스와 충돌할 수 있습니다. 이를 확인하려면 다음 명령을 실행하세요.

  • Linux/Unix:
    netstat -tuln | grep 8009
  • Windows:
     
    netstat -ano | find "8009"

포트를 사용하는 프로세스가 있다면 충돌을 해결하거나 다른 포트를 지정하세요.

5. 로그 확인

추가로, catalina.out 또는 관련 로그 파일을 확인하여 문제 원인을 더욱 구체적으로 파악하세요.

6. AJP 비활성화 (필요 시)

AJP 프로토콜이 반드시 필요한 경우가 아니라면, 보안을 위해 비활성화하는 것도 가능합니다. 이를 위해 server.xml 파일에서 AJP 커넥터를 주석 처리하거나 삭제하세요.

예시 수정된 server.xml

<!-- 주석 처리한 AJP 커넥터 -->
<!--
<Connector protocol="AJP/1.3"
			port="8009"
            redirectPort="8443" />
-->
 

위 단계를 통해 문제를 해결할 수 있습니다. 그래도 오류가 지속되면 추가 정보를 제공해 주시면 더 구체적으로 도와드리겠습니다!

반응형

'개발 > Tomcat' 카테고리의 다른 글

Tomcat WAR 파일 자동 Deployment  (0) 2024.12.31