톰캣을 실행하다 보면 콘솔에 다음과 같은 에러가 발생하며 톰캣이 실행되지 않는 것을 확인할 수 있습니다.
org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다.
콘솔창을 조금만 아래로 내려보면 다음과 같이 org.bouncycastle 에서 에러가 발생하는 것을 확인할 수 있습니다.
Caused by: java.lang.IllegalStateException: StackOverflowError로 인하여, 웹 애플리케이션 []에서 annotation 스캔을 완료하지 못했습니다. 가능성 있는 근본 원인(root cause)들 중의 하나는 -Xss가 너무 적게 설정되어 있거나 불허된 순환 상속 의존관계들일 수 있습니다. 처리되는 클래스의 상속 계층구조는 [org.bouncycastle.asn1.DERInteger->org.bouncycastle.asn1.ASN1Integer->org.bouncycastle.asn1.DERInteger]입니다.
해당 에러를 해결하기 위해서는 톰캣 실행 시 jar 파일 스캔 스킵 설정을 추가하거나 충돌하는 jar 파일을 삭제하는 방법이 있습니다.
톰캣 실행 시 jar 파일 스캔 스킵 설정
catalina.properties 파일을 열어서 tomcat.util.scan.StandardJarScanFilter.jarsToSkip 부분 맨 아래에 bcprov*.jar 를 추가해 줍니다. (파일 위치 : 프로젝트 → Servers → Tomcat v9.0 Server at localhost-config → catalina.properties)
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\
annotations-api.jar,\
ant-junit*.jar,\
------- 생략 ------
bcprov*.jar
충돌하는 jar 파일 삭제
WebContent > WEB-INF > lib 폴더를 열어서 bcprov*.jar 파일을 찾은 후 사용할 jar 파일만 남기고 제거해 줍니다.
※ 참고
- https://stackoverflow.com/questions/23927880/avoid-cyclic-reference-inheritance-in-grails
'프로그래밍 > Error' 카테고리의 다른 글
톰캣 서버 실행시 프로젝트가 배포되지 않는 현상 (0) | 2023.03.23 |
---|---|
ssh-key 공개키 만들기 '.ssh': No such file or directory (0) | 2022.11.16 |
ignoring option PermSize=512m; support was removed in 8.0 (0) | 2022.10.19 |
cannot change version of project facet dynamic web module to 3.1 (0) | 2022.09.28 |
Error Code: 4047 - InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE. (0) | 2022.09.16 |