본문 바로가기
개발/maven

메이븐 사용시 java.lang.NoClassDefFoundError java.lang.ClassNotFoundException 에러 발생

by 황태고블린 2021. 12. 14.
심각: 이름이 []인 컨텍스트를 시작하는 중 예외 발생
org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다.
	at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
	at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3752)
	at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:297)
	at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5531)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1381)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1385)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1385)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1353)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/mail/Email
	at java.lang.Class.getDeclaredFields0(Native Method)
	at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
	at java.lang.Class.getDeclaredFields(Class.java:1916)
	at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:110)
	at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:269)
	at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:137)
	at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:69)
	at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:328)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:781)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5053)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	... 8 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.mail.Email
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
	... 21 more

 

이클립스에서 메이븐사용중 java 파일을 수정하면 계속 나오는 에러메시지

구글에 다 뒤져보고 처음엔 dependency jar파일 설정이 꼬여서 그런줄 알고

exclusions 설정 하고 별짓을 다했는데 다 뻘짓

 

톰캣의 Server Options 에 있는

serve moudles without publishing 체크 때문이었는데

이 옵션을 체크하면 변동사항이 반영되지 않아 생기는 문제

 

https://www.reimaginer.me/entry/tomcat-options-Serve-modules-without-publishing-%EC%9D%B4%EB%9E%80

 

tomcat options - Serve modules without publishing 이란

개발할 때, 별 생각없이 체크하거나 체크 안하거나 하는 체크박스가 있었습니다. 바로 tomcat options 중에서 Serve module without publishing 이었습니다. 저는 그냥 무언가를 publishing 하지 않고 그냥 가져

www.reimaginer.me

 

댓글