에러 :

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

 

정적 리소스 사용하기 ( Resource Handler )

상황 : Controller 에서 Templates 경로의 View 를 반환하는데 404가 발생 다음의 상황에서 localhost:8080/testMain 를 접속하면 404가 뜨는 것을 볼 수 있습니다. 이 경우, 다음과 같은 설정을 해줘야 합니다. 위

tjdwns4537.tistory.com

 

+ Recent posts