인프런 커뮤니티 질문&답변

dhwns5555님의 프로필 이미지

작성한 질문수

모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1

JSP 오류 뜹니다.

작성

·

4.7K

2

아래에 있는 분하고 저도 똑같은 오류가 뜹니다.
톰캣 재가동 해도 안됩니다.
lib폴더에 cos.jar 파일도 넣었습니다.

HTTP 상태 500 – 내부 서버 오류


타입 예외 보고

메시지 JSP를 위한 클래스를 컴파일할 수 없습니다.:

설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다.

예외

org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: 

JSP 파일 [/upload.jsp]의 [7] 행에서 오류가 발생했습니다.
The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from required .class files
4: <%
5:     String path = request.getRealPath("upload");
6: 
7:     MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");
8: %>


JSP 파일 [/upload.jsp]의 [7] 행에서 오류가 발생했습니다.
The type javax.servlet.ServletRequest cannot be resolved. It is indirectly referenced from required .class files
4: <%
5:     String path = request.getRealPath("upload");
6: 
7:     MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");
8: %>


JSP 파일 [/upload.jsp]의 [7] 행에서 오류가 발생했습니다.
The constructor MultipartRequest(HttpServletRequest, String) refers to the missing type HttpServletRequest
4: <%
5:     String path = request.getRealPath("upload");
6: 
7:     MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");
8: %>


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:487)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:397)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:367)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:351)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
	jakarta.servlet.http.HttpServlet.service(HttpServlet.java:774)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

비고 근본 원인(root cause)의 풀 스택 트레이스를, 서버 로그들에서 확인할 수 있습니다.


Apache Tomcat/10.0.8

찾아보니까 cos.jar 경로를 못잡아주는거 같은데 이클립스는 경로 잡는 방법이 나와있는데 vscode에서는 어떻게 잡아야되는지 안나와있네요...

답변 2

0

어떻게 해결하셨나요?

 

0

크리핵티브님의 프로필 이미지
크리핵티브
지식공유자

혹시,

[톰캣설치경로]/lib 경로에 "servlet-api.jar" 파일이 존재하나요?

dhwns5555님의 프로필 이미지
dhwns5555
질문자

존재합니다.

dhwns5555님의 프로필 이미지
dhwns5555
질문자

<%@ import javax.servlet.http.HttpServletResponse %>

추가하니까 

HTTP 상태 500 – 내부 서버 오류


타입 예외 보고

메시지 /upload.jsp (행: [3], 열: [4]) 유효하지 않은 지시어

설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다.

예외

org.apache.jasper.JasperException: /upload.jsp (행: [3], 열: [4]) 유효하지 않은 지시어
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:292)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:98)
	org.apache.jasper.compiler.Parser.parseDirective(Parser.java:510)
	org.apache.jasper.compiler.Parser.parseFileDirectives(Parser.java:1796)
	org.apache.jasper.compiler.Parser.parse(Parser.java:135)
	org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
	org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:127)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:202)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:391)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:367)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:351)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
	jakarta.servlet.http.HttpServlet.service(HttpServlet.java:774)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

비고 근본 원인(root cause)의 풀 스택 트레이스를, 서버 로그들에서 확인할 수 있습니다.


Apache Tomcat/10.0.8

문법 오류로 바뀝니다.

그래서 

<%@ page import="javax.servlet.http.HttpServletResponse" %>

변경하니까 다시 똑같은 오류가 뜹니다.

HTTP 상태 500 – 내부 서버 오류


타입 예외 보고

메시지 JSP를 위한 클래스를 컴파일할 수 없습니다.:

설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다.

예외

org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: 

코드 생성된 자바 파일 [C:\apache-tomcat-10.0.8-windows-x64\apache-tomcat-10.0.8\webapps\ROOT\JAVA, CLASS\ROOT\org\apache\jsp\upload_jsp.java]의 [15] 행에서 오류가 발생했습니다.
Only a type can be imported. javax.servlet.http.HttpServletResponse resolves to a package

JSP 파일 [/upload.jsp]의 [8] 행에서 오류가 발생했습니다.
The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from required .class files
5: <%
6:     String path = request.getRealPath("upload");
7: 
8:     MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");
9: %>


JSP 파일 [/upload.jsp]의 [8] 행에서 오류가 발생했습니다.
The type javax.servlet.ServletRequest cannot be resolved. It is indirectly referenced from required .class files
5: <%
6:     String path = request.getRealPath("upload");
7: 
8:     MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");
9: %>


JSP 파일 [/upload.jsp]의 [8] 행에서 오류가 발생했습니다.
The constructor MultipartRequest(HttpServletRequest, String) refers to the missing type HttpServletRequest
5: <%
6:     String path = request.getRealPath("upload");
7: 
8:     MultipartRequest multi = new MultipartRequest(request, path, 1024*10, "UTF-8");
9: %>


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:487)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:397)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:367)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:351)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
	jakarta.servlet.http.HttpServlet.service(HttpServlet.java:774)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

비고 근본 원인(root cause)의 풀 스택 트레이스를, 서버 로그들에서 확인할 수 있습니다.


Apache Tomcat/10.0.8

dhwns5555님의 프로필 이미지
dhwns5555
질문자

뭐가 문제인지 잘 모르겠네요,