에러 :
Caused by: java.io.FileNotFoundException: class path resource [elastic/article-setting.json] cannot be opened because it does not exist
말 그래도 경로를 못잡아서 생기는 문제입니다.
저 같은 경우,
@Mapping(mappingPath = "elastic/article-mapping.json")
@Setting(settingPath = "elastic/article-setting.json")
public class ArticleDoc {
...
}
이렇게 경로를 잡고 있는데, resource 경로에 파일명도 제대로 되있는데 왜 못잡을까? 를 생각했습니다.
정적 파일이 resource/static/elastic/~~.json 과 같이 원래 잡던 경로랑 달라져서 생기는 문제였습니다.
아래와 같이 문제를 해결할 수 있습니다.
1. WebConfig 설정
package com.example.elasticsearch.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String[] resourceLocation = {
"classpath:/static/", "classpath:/resources/","classpath:/public/","classpath:/static/elastic/"
};
registry.addResourceHandler("/**").addResourceLocations(resourceLocation);
super.addResourceHandlers(registry);
}
}
2. Setting 경로 수정
@Mapping(mappingPath = "/static/elastic/article-mapping.json") // 경로수정
@Setting(settingPath = "/static/elastic/article-setting.json") // 경로수정
public class ArticleDoc {
...
}
이렇게 하면 문제가 해결되는 것을 볼 수 있습니다.
!! 참고
https://tjdwns4537.tistory.com/158
'Spring' 카테고리의 다른 글
토비의 스프링 - 오브젝트의 의존관계, 책임의 분리 (0) | 2024.07.03 |
---|---|
Spock Framework (0) | 2023.09.14 |
Resolved [org.springframework.validation.BindException: org.springframework.validation 에러 (0) | 2022.12.18 |
회원가입 페이지에서 이메일 인증하기2 (0) | 2022.12.12 |
회원가입 페이지에서 이메일 인증하기1 (0) | 2022.12.11 |