Получить путь ресурса из приложения весенней загрузки, используя контекст сервлета - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть эта структура, сгенерированная весенней загрузкой

enter image description here

Поэтому я хочу получить входной поток файла gastos.xlsx, используя sevletContext.

    @Autowired
    private ServletContext context;

    @GetMapping("/grafico")
    public ResponseEntity<String> exportExcelGrafico(HttpServletResponse response){

        try{
               //this path returns null. What is the real path to put here? 
             InputStream input = context.getResourceAsStream("src/main/resources/templates/gastos.xlsx");
             //returns null
             input = context.getResourceAsStream("/resources/templates/gastos.xlsx");
             // Returns null
             input = context.getResourceAsStream("/templates/gastos.xlsx");
        }
        catch(){

        }

Каким будет правильный путь?Я ничего не настроил на своем application.properties

1 Ответ

0 голосов
/ 29 декабря 2018

То, что находится в папке src/main/resources вашего проекта Maven или Gradle, попадает в вашу банку, а не в веб-ресурсы.И поэтому он должен быть загружен с использованием загрузчика классов, а не с использованием контекста сервлета:

MyClass.class.getResourceAsStream("/templates/gastos.xlsx")

Не уверен, почему вы помещаете этот файл в шаблоны, поскольку ... это не шаблон.

...