국비학원 공부노트/JSP

[Java JSP] 에러: java.lang.IllegalArgumentException: Not a directory

hyeseo 2022. 2. 19. 17:18

[ 개발환경 ]

MacBook Air M1 2020년형 

eclipse [2021-3 ver]

Java [zulu-8]

JSP

Tomcat [Apache Tomcat/9.0.58]

 

MacBook Air M1 // Java JSP로 파일 업로드 구현 중 해결한 걸 정리하는 목적으로 작성하는 글입니다..


 

오류 : java.lang.IllegalArgumentException: Not a directory:

 

혹시..파일 업로드 구현하다가 오셨나요..?

코드가 아래와 같은지 확인해보세요.

String path = request.getServletContext().getRealPath("/폴더명");

폴더가 지정된 경로에 없어 발생한 오류 입니다.

 

 

저도 처음에는  .metadata 폴더를 찾아 해결했는데,

상대경로로 설정해주면 쉽게 해결됩니다! 

 

 

▼ 상대경로 코드

1. Session

String path = request.getSession().getServletContext().getRealPath("폴더명");

2. application

String path = application.getRealPath("폴더명");

 

그래도 metadata 폴더를 찾아 해결하고 싶다면 아래 방법을 참고해주세요.

 


절대경로로 설정하여 해결하는 방법

 

에러 메세지에 Not a directory: ../workspace/.metadata/ 경로가 나오는데,

위 경로에 같은 폴더명이 없다면 만들어 주면 된다.

 

 

 

1. workspace에 들어가도metadata폴더가 안보일텐데

'숨김'으로 설정되어 있기 때문이다.

 

 

 

 

 

 

2. [ shift +command + . ] 를 누르면 숨김 파일을 볼 수 있다.

(동일한 키로 숨김파일보기 해제 할 수 있다.)

 

 

 

 

 

3. workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/프로젝트 이름 폴더에 가서

 

해당 위치에 이클립스에서 설정한 폴더명 없다면 만들어주면 됩니다.