12월 31, 2023

[Java] cannot resolve symbol servlet 해결법, Servlet Interface 구현해보기

 Java에서 



이런 식으로 Servlet implements가 불가능하며 

빨간 줄에 커서를 대고 

'cannot resolve symbole servlet' 이라는 에러 메세지가 뜬다면 dependency의 문제일 확률이 높다.


build.gradle 파일에 가서 수정을 해주면 되는데,

implementation 'org.apache.tomcat.embed:tomcat-embed-core:8.5.42'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:8.5.42'


나는 이 두 줄을 추가하고 build 하니 해당 에러 메세지를 해결 할 수 있었다. 


참고로 Servlet Interface를 implement할 경우 method를 모두 다 override 해주어야 하므로 

모든 추상 메서드에 대한 override method가 설정이 되어야 비로소 빨간 줄이 모두 없어진다. 


import javax.servlet.*;
import java.io.IOException;

public class ExampleServlet implements Servlet {

@Override
public void init(ServletConfig servletConfig) throws ServletException {

}

@Override
public ServletConfig getServletConfig() {
return null;
}

@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

}

@Override
public String getServletInfo() {
return null;
}

@Override
public void destroy() {

}
}


Servlet Interface를 구현한 예시 Servlet class이니 참고하면 될 것 같다.