본문 바로가기

javax.servlet 오류(톰캣 9, 톰캣 10, javax, jakarta, apache Tomcat v9 v10, The import javax.servlet cannot be resolved)

by 모지Lee 2023. 6. 16.
반응형

모지Lee 입니다.

 

이번에 jsp, servlet 작업 의뢰가 들어와서 저는 평소에 하던 데로 아무 생각 없이

이클립스를 통하여 작업을 진행하였고, 완성된 결과물을 고객분에게 전달을 하였는데

servlet 파일에서 에러가 발생한다고 피드백을 주셨습니다.

 

"The import javax.servlet cannot be resolved"

javax.servlet을 가져오지 못해 발생하는 에러이기 때문에 server libaray를 설정해 주면 됩니다.

반응형

① 프로젝트 마우스 우클릭 → Build Path → Configure Build Path

② Libraries → Classpath → Add Library...

③ Server Runtime → Next

④ 내가 원하는 서버 → Finish

⑤ 서버가 추가된 것을 확인한 후 → Apply and Close

 

순서대로 진행하면 javax.servlet 에러가 없어지는 것을 확인할 수 있습니다.

하지만!! 이렇게 진행하였는데도 불구하고 에러가 없어지질 않았습니다!!

그래서 원인이 무엇일까 살펴보던 와중에 고객님 이클립스에 설치되어 있는 톰캣 서버와 저의 이클립스에 설치되어 있는 톰캣 서버가 다르다는 것을 확인할 수 있었습니다.

 

https://www.samsungsds.com/kr/insights/java_jakarta.html

 

Java EE에서 Jakarta EE로의 전환 | 인사이트리포트 | 삼성SDS

자바 기술자라면 Java EE(Java Platform, Enterprise Edition) 또는 J2EE(Java 2 Platform, Enterprise Edition)를 들어봤을 것입니다. 자바를 이용한 서버 개발 플랫폼으로 한 때 엔터프라이즈 자바 기술을 선도하며 막

www.samsungsds.com

 

 

tomcat 9 버전에서는 servlet-api.jar안에를 보면 javax.*로 되어 있는데 tomcat 10 버전에서는 jakarta.*로 되어 있습니다.

2017년 이클립스 재단에 자바EE 프로젝트를 이관하면서 네임스페이스를 jakarta로, API 패키지명은 jakarta.*로 변경 되었다고 하네요.

 

톰캣 서버 버전을 맞춰주고 각각 톰캣 버전에 맞는 네임스페이스를 작성해 주고 프로젝트를 진행하니 에러 없이 잘 되는 것을 확인할 수 있었습니다.

 

버전 9까지는 전혀 생각지도 못하였는데 유념하면서 작업을 진행해야 될 것 같습니다.

 

그럼 뿅~~

 

 

 

반응형

댓글