작성
·
2.9K
1
선생님 제가 지금 [실습2-2] "직접 제작하면서 배우는 JSP 기반의 파일 업로드 기능에 대한 이해" 이 부분을 공부하고 있는데
아파치 톰캣 폴더 안에 webapp 안에 Root 폴더에 index.jsp, upload.jsp 파일 둘 다 만들어서
선생님께서 강의해주신 그대로 코드를 작성하고 톰캣을 실행시켜서
127.0.0.1:8080에 접속해서 "파일 선택 선택된 파일 없음 upload"까지는 정상적으로 되었는데
그 이후에 파일을 선택하고 업로드 버튼을 누르면 "HTTP 상태 500 - 내부 서버 오류"가 발생합니다.
제가 upload.jsp에 작성한 코드는
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%
String path = request.getRealPath("upload");
MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");
String filename = path + "/" + multi.getFilesystemName("userfile");
%>
<li>업로드 성공 : <%=filename%></li>
이것이고 "HTTP 상태 500- 내부 서버 오류"에 써 있던 문구는
org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: JSP 파일 [/upload.jsp]의 [6] 행에서 오류가 발생했습니다. The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from required .class files 3: <% 4: String path = request.getRealPath("upload"); 5: 6: MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8"); 7: String filename = path + "/" + multi.getFilesystemName("userfile"); 8: %> 9: JSP 파일 [/upload.jsp]의 [6] 행에서 오류가 발생했습니다. The type javax.servlet.ServletRequest cannot be resolved. It is indirectly referenced from required .class files 3: <% 4: String path = request.getRealPath("upload"); 5: 6: MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8"); 7: String filename = path + "/" + multi.getFilesystemName("userfile"); 8: %> 9: JSP 파일 [/upload.jsp]의 [6] 행에서 오류가 발생했습니다. The constructor MultipartRequest(HttpServletRequest, String) refers to the missing type HttpServletRequest 3: <% 4: String path = request.getRealPath("upload"); 5: 6: MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8"); 7: String filename = path + "/" + multi.getFilesystemName("userfile"); 8: %> 9: Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:482) org.apache.jasper.compiler.Compiler.compile(Compiler.java:392) org.apache.jasper.compiler.Compiler.compile(Compiler.java:362) org.apache.jasper.compiler.Compiler.compile(Compiler.java:346) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
이것입니다.
선생님께서 말씀하셨던 cos.jar 파일도 잘 아파치 톰캣 폴더 lib에 넣었는데 이럽니다 ㅠㅠ
저는 지금 비주얼 스튜디오 코드를 사용하고 있고 이클립스는 사용하지 않고 있습니다.
아파치 톰캣은 10버전을 사용하고 있고 JDK8버전을 사용하고 있습니다.
PHP 기반의 파일은 정상적으로 잘 만들어지는데 JSP 기반의 파일은 안 만들어집니다.
검색을 해도 이클립스 어쩌구 저쩌구만 나오고 미치겠습니다.
6행에서 오류가 발생했다고 해서 계속 확인을 해봤는데 선생님께서 작성해주셨던 코드랑 다를 게 없었습니다.
index.jsp 파일에 있는 코드들은 다 색깔이 들어가는데
이상하게 upload.jsp 파일에 있는 코드들은 다 색깔이 안 들어갑니다.
톰캣 재기동을 해도 안 됩니다.
Multiple annotations found at this line:
- The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from
required .class files
- The constructor MultipartRequest(HttpServletRequest, String) refers to the missing type HttpServletRequest
- The type javax.servlet.ServletRequest cannot be resolved. It is indirectly referenced from required .class files