• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

선생님 ㅠㅠ 안됩니다.

21.04.03 15:15 작성 조회수 2.71k

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 파일에 있는 코드들은 다 색깔이 안 들어갑니다.

 

답변 1

답변을 작성해보세요.

0

cos.jar 라이브러리 인식이 되지 않아 클래스를 못찾는것 같습니다.

톰캣 재기동을 해도 안되나요??

레스큐님의 프로필

레스큐

2022.08.21

톰캣 재기동을 해도 안 됩니다.

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