читать. html файл из папки ресурсов на сервере при весенней загрузке - PullRequest
1 голос
/ 03 марта 2020

Я пытаюсь прочитать демо. html файл из ресурсов при весенней загрузке. Я пробовал этот код, но он работает только локально, а не на сервере:

val demoFile = new File(this.getClass.getClassLoader.getResource("foo/demo.html").getFile)
val demoFile = new File(ClassLoader.getSystemClassLoader.getResource("foo/demo.html").getFile)
val demoFile = new File(Thread.currentThread().getContextClassLoader.getResource("foo/demo.html").getFile)

на сервере Я получаю FileNotFoundException

спасибо.

1 Ответ

0 голосов
/ 03 марта 2020

Он работает локально, потому что файл demo.html существует на вашем локальном компьютере. Вы можете найти его в папке build или там, где ваша IDE использует для компиляции кода.

Когда вы запускаете проект на сервере, у вас есть только файл проекта jar, например, project.jar. На сервере нет demo.html файла.

demo.html находится внутри project.jar файла. project.jar - это просто ZIP-архив. Поэтому вам нужен способ получить файл из ZIP-архива (ваш project.jar).

Самый простой способ - использовать потоки. Вы можете прочитать файл, например, в строке.

Если вам нужно проанализировать файл (это может быть JSON, XML или HTML), вы можете передать поток непосредственно в библиотеку синтаксического анализа.

Также не делайте забудьте закрыть поток (если он, конечно, не закрыт библиотекой).

https://www.baeldung.com/spring-classpath-file-access

Также вы можете скопировать файл из банки в папку TEMP и доступ к ней как к обычному файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...