아파치 톰캣을 구동하다 보면 만날수 있는 흔치않는 오류 입니다.
오류메시지도 다양하게 아래 형식을 맞추어서 나오게 됩니다.
org.apache.catalina.util.LifecycleMBeanBase.unregister Failed to unregister MBean with name [Catalina:type=여러형태의 값] during component destruction
javax.management.InstanceNotFoundException: Catalina:type=여러형태의 값
위 메시지에서 "여러형태의 값" 에 대한 내용을 대충 적어보았습니다.
물론 해당 메시지 말고도 좀 더 있습니다.
Catalina:type=Mapper
Catalina:type=Realm,realmPath=/realm0
Catalina:type=Valve,name=StandardEngineValve
Catalina:type=Valve,host=localhost,name=AccessLogValve
Catalina:type=Valve,host=localhost,name=ErrorReportValve
Catalina:type=Loader,host=localhost,context=/
...
여기서 일단 우리가 확인해야 되는 것은 Lifecycle과 관련된 오류이므로 동작하는 app의 문제 뿐만 아니라 tomcat에서의 구동을 할 때의 설정 과 환경의 문제도 같이 확인을 해 보아야 합니다.
이러한 원인은 아래의 상황을 통해 유추해볼 수 있습니다.
1. 앱에서 같은 이름을 가진 서비스의 형태(ex : 데이터베이스 datasource를 2개이상 사용시 객체이름이 동일 한 경우)
2. Tomcat에서 같은 이름을 가진 Service 또는 Engine 이름
- 1개의 톰캣에서 여러개의 서비스를 동작시키는 경우 입니다.
- Service의 name(이름)이 같거나 Engine에서의 name(이름)이 같은 경우 입니다.
3. 같은 운영체제에서 여러개의 톰캣이 같은 포트를 사용하는 경우
- 사실 이러한 경우에는 "포트를 사용중입니다." 라는 오류와 함께 서버가 구동자체가 되지 않습니다.
저 같은 경우에는 2번과 같은 상황이였습니다.
1개의 톰캣에서 80포트(http)에도 개방해야 되고, 의 443포트(https)에도 개방되는 경우였는데 같은 서비스를 복사하여 붙여넣기 하다가 Engine이름을 동일하게 준 것이 해당 오류의 원인이였습니다.
톰캣에서 Lifecycle과 관련된 오류를 만나게 된다면 반드시 환경과 설정에서의 문제를 먼저 찾아보시는 것을 추천드립니다.
기타 궁금한점이나 의문나는 점에 대해서는 언제든지 연락주세요! ^^
'Java(자바)' 카테고리의 다른 글
Java Map 다양한 데이터 정렬하기(자바 맵 정렬 - 2) (0) | 2020.11.05 |
---|---|
Javax mail 참조 및 수신기능이 되지 않을 때(Java cc, to not working) (0) | 2020.08.31 |
Java List to Map (Java 리스트를 맵으로, 자바 List to Map) (0) | 2020.07.06 |
Java Map 정렬하기(자바 맵 정렬) (0) | 2020.07.06 |
Java에서 Firebase 데이터 베이스 연동하기(안드로이드 없이, without Android) (8) | 2020.06.25 |
댓글