-
ServletException: not delete 오류ElasticSearch/오류 2025. 1. 27. 21:26반응형
삭제 성공 1월 27, 2025 9:22:07 오후 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: 경로 [/MVC02]의 컨텍스트 내의 서블릿 [jsp]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [javax.servlet.ServletException: not delete]을(를) 발생시켰습니다. javax.servlet.ServletException: not delete at org.apache.jsp.member.memberDelete_jsp._jspService(memberDelete_jsp.java:130) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1726) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 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:61) at java.base/java.lang.Thread.run(Thread.java:834)
이 오류는 memberDelete.jsp에서 삭제 작업을 처리하려고 할 때 발생한 것입니다. 구체적으로 보면, ServletException: not delete 오류는 cnt 값이 0 또는 음수일 때 발생하는 것으로 보입니다. 즉, 데이터베이스에서 삭제 작업이 성공적으로 이루어지지 않았기 때문에 예외가 발생한 것입니다.
//회원 삭제 public int memberDelete(int num) { String SQL = "delete from member where num=?"; getConnect(); int cnt= 0; try { ps = conn.prepareStatement(SQL); ps.setInt(1, num); cnt = ps.executeUpdate(); System.out.println("삭제 성공"); }catch(Exception e) { System.out.println("삭제 실패"); e.printStackTrace(); }finally { dbClose(); } return cnt; }
회원 삭제하는 경우 기존에는 cnt 의 초기값을 cnt = -1로 설정해두었기때문에 오류가 발생하였다.
executeUpdate() 메서드는 SQL 쿼리문이 실행된 결과로 영향을 받은 행의 개수를 반환합니다.
- 삭제가 성공적으로 이루어졌을 경우: 해당 회원이 데이터베이스에서 삭제되면 영향을 받은 행(row)이 1개가 되므로, cnt 값이 1이 됩니다.
- 삭제가 실패한 경우: 만약 주어진 num에 해당하는 회원이 존재하지 않으면, 삭제할 행이 없으므로 cnt 값이 0이 됩니다.
cnt의 초기값을 0으로 설정해준다면 정상적으로 실행된다.
반응형'ElasticSearch > 오류' 카테고리의 다른 글
오류 - Could not find com.mysql:mysql-connector-j:8.0.26. (0) 2025.03.16 SpringBoot(ElasticSearch) - : Cannot constructQuery '*"첫 번째"*'. Use expression or multiple clauses instead. (3) 2024.11.13