JaPark Bug World
[Java/mac]java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver 본문
[Java/mac]java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
JAstory 2024. 4. 19. 23:06백앤드를 배운다고 요즘.. 고생하는 내 맥북인지 내 뇌인지 이제 알수가 없다. 여튼 jsp 실습중에 자바에서 DB에 접근할 수 있도록 도와주는 드라이버인 jdbc라는게 있다. 열심히 코드를 뙇 치자마자 아주 근사하게 exception을 맞이했다.
java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1329)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1141)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:375)
at me.japark.pro07.MemberDAO.connDB(MemberDAO.java:53)
at me.japark.pro07.MemberDAO.listMembers(MemberDAO.java:15)
at me.japark.pro07.MemberServlet.doGet(MemberServlet.java:31)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:154)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:179)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:154)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1786)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.base/java.lang.Thread.run(Thread.java:840)
oracle.jdbc.OracleDriver를 찾을 수 없다고 한다. 아놔........ 이것때문에 오늘 몇시간을 날렸는지 모른다.
여튼 해결방안은 이랬다.
1. 일단 오라클 버전에 맞는 드라이버를 다운로드 받는다.
jdk 버전에 따라 드라이버 버전이 다르니 확인이 필요하다.
https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html
2. 맥북 같은 경우는 톰캣이 설치된 라이브러리 경로안에 다운로드 받은 ojdbc.jar를 넣어줘야 한다. 나는 홈브루를 통해 톰캣을 설치했고 파일 경로는 /opt/homebrew/Cellar/tomcat@9/9.0.87/libexec/lib 이다. lib 폴더 안에 넣어주고 실행 시키니까.. 너무 잘된다..
ㅜㅜㅜㅜㅜㅜ