국비학원 공부노트/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/프로젝트 이름 폴더에 가서
해당 위치에 이클립스에서 설정한 폴더명 없다면 만들어주면 됩니다.