문제점해결

HTTP Status 500 - Servlet.init() for servlet ControllerAction threw exception

예쁜꽃이피었으면 2014. 12. 30. 17:05



심각: StandardWrapper.Throwable

java.lang.NoClassDefFoundError: javax/mail/Authenticator

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at sb.common.controller.ControllerAction.loadProperties(ControllerAction.java:44)

at sb.common.controller.ControllerAction.init(ControllerAction.java:28)

at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)

at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.ClassNotFoundException: javax.mail.Authenticator

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)

... 22 more


12월 30, 2014 2:29:00 오후 org.apache.catalina.core.StandardWrapperValve invoke

심각: Allocate exception for servlet ControllerAction

java.lang.ClassNotFoundException: javax.mail.Authenticator

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at sb.common.controller.ControllerAction.loadProperties(ControllerAction.java:44)

at sb.common.controller.ControllerAction.init(ControllerAction.java:28)

at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)

at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)


자바 mail을 사용할 때 SE6이상이면 이미 내장되어 있어서 따로 추가할 것이 없지만

class를 못 찾는다고 뜬다면

activation.jar

mail.jar 를 추가해봐라. 

activation.jar


mail.jar



-> 안 됨.




java.lang.class.forname0(native method) java.lang.class.forname(unknown source) 이게 뭔지 궁금해짐.

http://stackoverflow.com/questions/10037499/class-not-found-exception-class-fornamecom-mysql-jdbc-driver-in-webservice

If this code works in your J2SE it means you need to have a JAR file somewhere containing com.mysql.jdbc.Driver class (so called JDBC driver). This JAR needs to be visible in Tomcat. So, I would suggest to place mysql-jdbc.jar at physical location to /WEB-INF/lib directory of your project.

Many times in the past, I have experienced ClassNotFoundException if jar is not at physical location. Then restarting Tomcat should work. 

이렇게 하라고 한다. 

com.mysql.jdbc_5.1.5.jar  내가 받은 파일은 이것 .

톰캣이란 프로젝트 lib에 추가해도 안된다.

파일명을 mysql-jdbc.jar 이렇게 바꿔봤다. 안된다.




javax.servlet.ServletException

에 대해 찾아봤다.

http://imdsoho.tistory.com/146

//-------------------------------------------------------------------------------
[자답]

NoClassDefFoundError는 말그대로 클래스가 존재하지 않아서 발생하는 에러입니다.

classpath에 해당 클래스가 존재하더라도  상위클래스로더에서 하위클래스로더를 참조하는경우 class의 name space가 달라서 해당 에러가 발생할수 있습니다.

servlet.jar는 JEUS에서 JEUS_HOME/lib/system/jeus.jar와 동일합니다.

혹시 cos.jar 가 servlet.jar 상위클래스로더에 있는건 아닌지 확인할 필요가 있습니다. - >servlet.jar아예없음 파일 받아서 넣어도 안됨.

System ClassPath 또는 JAVA_HOME/jre/lib/ext/ 아래  cos.jar가 있는경우 해당 에러가 발생할수 있습니다. ->없음


servlet.jar









http://www.hadoop-forum.co.kr/_board/content.php?id=50&pass_id=16&secret=0&slug=&page=

ClassNotFoundException의 에러는 대부분 jar 파일의 경로가 틀려서 Class를 찾지 못하는 경우입니다. 


검색어 : Servlet.init() for servlet  threw exception


jar파일이 이리저리 옮겨다니면서 상했을 수 있으니 온전한 것으로 바꿔보라고 한다.  뭔가 뭔줄알고..ㅜ




web.xml을 보다가 

log4j.properties 의 경로가 이상하다고 생각되어 졌다. 실제로는 WEB-INF/classes/log4j인데

web.xml에는 WEB-INF/log4j라고 적혀 있었다.

그래서 프로퍼티파일을 web-inf밑에 두고 실행 했지만 같은 에러가 났다.

또 web.xml에서 경로를 클래시스 밑으로 수정했지만 같은 에러가 났다. 

상관없나보다.




해결 못함

반응형