티스토리 뷰
이번에 wsl2 intellij 프리징 문제가 해결되어서 프로젝트를 모두 wsl2 리눅스 환경으로 옮겼다.
기존에 하던 프로젝트를 실행했는데 갑자기 access denied for user 'user'@'172.10.0.1'
가 나오기 시작했다.
처음에는 mysql 계정 권한과 관련이 있는 줄 알아서 그에 관해 검색을 했다.
user의 172.10.0.1을 권한을 풀어주려 하니 root@172.10.0.1 계정을 만들어야 한다고 한다.
잘 돌아가던 계정이 갑자기? 뭔가 이상함을 느꼈다.
window에서 해당 프로젝트를 실행시켜보니 잘 돌아가는 것을 확인했다.
wsl2 와 관련된 문제인가 생각했는데, application.properties 파일을 읽지 못해 hibernate와 연동할 때 문제가 생긴 것이다..
application.properties 인식 못함을 키워드로 검색해서 조사했다.
@PropertySource(value = "classpath:경로") 어노테이션을 사용하여 직접 application.properties 경로를 지정할 수 있었다.
실행한 결과 역시 똑같은 에러가 발생했다.
그래서 classpath 경로가 지금 어디를 나타내는지 의문이 들기 시작했다.
ResourceLoader resourceLoader = new DefaultResourceLoader();
Resource resource = resourceLoader.getResource("classpath:application.properties");
System.out.println("resource = " + resource.exists());
System.out.println("resource.getFilename() = " + resource.getURI().toString());
위의 코드를 실행되는 환경인 window와 실행 되지 않는 wsl2에서 각각 실행했다.
resource를 불러올 때 window에서는 out/~ 성공, wsl2에서는 build/~ 실패했다.
둘이 다른 경로를 나타내고 있었다.
out - 폴더는 인텔리제이 빌드시에 컴파일한 class를 저장하는 폴더 입니다.
build - 폴더는 gradle 빌드시에 컴파일한 class를 저장하는 폴더 입니다.
출처 https://gocoder.tistory.com/2307
wsl2에서 build/~ 로 시작하는데, build 경로를 나타내고 있어서 build tools - gradle에서 build and run using과 run tests using 설정을 intellij IDEA에서 gradle로 바꿔보았다.
에러가 발생하지 않고 잘 실행되었다!!
다시 intellij IDEA 설정을 하고 .idea폴더와 out폴더를 삭제하고 다시 돌려보았더니 에러가 발생하지 않고 잘 실행되었다.
좀 허무하긴 했지만 무사히 해결되서 다행이다. (window로 다시 돌아갈 뻔 했다...)
사진을 추가(23.04.17)
application을 run 했을 때 resources 폴더가 out폴더에 생성되지 않아 파일을 application.yml을 읽지 못한다.

다음 사진처럼 직접 복사해서 붙여넣기를 해주면 정상적으로 application.yml을 읽는다.

왜 자동으로 생성이 되지 않을까 싶어서 구글링하면서 해결하려고 시도했지만 실패했다.
PS. 버전을 업데이트하라는 코멘트가 있어 21.03 intellij에서 23.01 intellij로 수정하니 위의 문제가 없어지고 정상적으로 run할 때 resources폴더가 생성되었다.
'기타' 카테고리의 다른 글
wsl2 intellij 프리징 문제 해결 (0) | 2023.02.18 |
---|