우선 나처럼 공부를 시작한지 얼마 안된
신입~주니어 급 개발자들은 공감하겠지만
분명히 똑같이 따라쳐도 내 컴퓨터만 에러가 나는 경우가 생긴다
그럴 때 마다 진짜 왜 또 에러야? 잘 나가다가 왜이래? 라는 생각에 화가 치밀어 오른다
하지만 이 에러를 극복! 해내면 다음에 똑같은 에러를 만났을 경우..
훗 이정도쯤이야 하고 빠르게 처리하고 넘어갈 수 있으므로 (사실상 그렇게 되길 희망함)
이렇게 작성을 해본다
사건은 이러하다
스프링의 정석 강의를 보면서 MVC패턴 이론과 실습을 잘 따라갔고
이제 원리를 들으려고 하는데 Reflection API을 사용하는 예제를 따라가다가
갑자기 에러가 났다
근본적인 이유는 2가지 정도가 있다
첫번째! 강의는 STS로 진행되지만 나는 인텔리제이로 수업을 듣고 있다
학원 수강중에 인텔리제이로 갈아타면서 세미프로젝트와 파이널 프로젝트를 모두 인텔리제이로 진행했는데
이상하게 M1 PRO 16인치 나름대로 좋은 맥북을 사용하고있는데도 STS만 켜면 아무것도 안해도 저장한번하면 무지개~
뭐 하나 클릭하고 생성하면 무지개~ 진짜 어떻게 해도 무지개무지개의 연속이였다
그래서 구글링을 해가면서 인텔리제이로 강의를 따라가고 있다
그래서 강좌에서 제공되는 예제 코드를 가져오면 조금씩 수정을 해줘야하는 경우가 생겼다
톰캣으로만 실행하다가 컨트롤러 자체에서 System.out을 사용하는 경우에는 해당 컨트롤러 자체를 RUN해서
결과물을 봐야하는데 그걸 따라하는 과정에서
이런 무시무시한 에러를 마주하게 된다
일단 이 에러를 다 이해하면서 음.. 여기에 이런부분에서 에러가 있군? 이라고 하고 싶지만
아직 나의 미천한 실력으로는 근본적인 이유를 알 수 가 없다
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
at java.base/java.lang.Class.getDeclaredMethods(Class.java:2309)
at com.fastcampus.ch2.MethodInfo.main(MethodInfo.java:13)
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 4 more
과연 이 에러는 무엇일까..?
강좌에서는 해당 API를 사용하기 앞서서 pom.xml에서 자바 버전을 11로 맞춰줘야한다고 했다
인텔리제이에서 compiler에서 1.1로 설정된 것을 11로 바꿔줘봤다
이렇게 되어있던 버전을
이렇게 수정해주고
상단에 있는 Reload Project도 해주고
빌드도 여러번 해줬다 혹시 모르니까..?
그리고 pom.xml안에서 자바버전도 11로 바꿔줬는데..
그래도! 에러는 사라지지 않았고
몇십분동안 폭풍 구글링을 했다
영어과를 나오고 외국에서 생존경험도 있지만 영어를 쥐뿔도 할 줄 모르기에
미천한 나의 영어실력과
우클릭 한국어로 번역이라는 필살기! 까지 동원한 결과
내가 찾아낸 빛과같은 코드!
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
음.. 내가 아는 거라고는 dependency정도?
리액트에서 의존성?? 을 공부할 때 자주 봤던 녀석이다
무튼 이 코드를 넣어보자
이 허전한 빈공간을.. 내가 채워볼게..
얍!
자 이제 저장하고 새로고침 몇번 탁탁 해주고!
짜잔!
드디어 내가 원하는 결과값이 출력된다!
구글만세..! 영어만세..!
이제 강의로 돌아가서 마저 하던 공부를 해야겠다
앞으로도 잘 부탁해 구글선생..
'Error' 카테고리의 다른 글
인텔리제이 스프링부트 Whitelabel Error Page 에러 (0) | 2022.12.30 |
---|---|
mysql error 1305 에러 해결 (mysql 프로시저) (0) | 2022.12.23 |
프로젝트 GROUP BY 에러해결하기 SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); (0) | 2022.12.22 |
IntelliJ 프로젝트 서버 실행 시 사용중인 포트 에러 잡기 (0) | 2022.12.22 |
인텔리제이 스프링부트 프로젝트 실행 시 패스워드 에러 (0) | 2022.12.20 |