Возникла ошибка при загрузке файла в на сайт: java.io.FileNotFoundException: /usr/local/tomcat/src/main/resources/static/files/1.docx (No such file or directory). Полагаю, что неверно указана рут директория. Подскажите, пожалуйста, в какую папку устанавливают проекты на tomcat? Уверен, что между tomcat и src есть еще какие-то директории. Сам не разу не развертывал приложение на apache, поэтому задаю такой примитивный вопрос.
Apache tomcat, это не совсем тот apache, о котором Вы думаете, хотя они и рядышком. Это сервер java- приложений!
Соответственно приложения для него упаковываются в jar(war) архивы. У каждого приложения свой root.
У самого сервера есть только рабочий каталог, куда закидываются архивы для деплоя и где они распаковываются.
Обычно ресурсный (resources) каталог защищен от записи. Так что нужно смотреть содержимое архива командой jar.
Спасибо за Ваш ответ. Правильно ли я понимаю, что из-за защиты от записи то, что у меня работало локальное не получится выполнить на сервере? А каким образом обходится этот запрет, со стороны сервера или со стороны приложения?
Nulltiton, Что значит "работало локально"?
Может быть просто прав не хвататет и сервер запущен, например под пользователем tomcat:tomcat?
С другой стороны, если Вы сами разрабатываете приложение, то для записи файлов лучше иметь каталог вне сервера приложений.
Также, в некоторых системах linux может быть защита на уровне cgroups/selinux/systemd.
Ну и саму яву (и томкат вчастности) тоже можно запустить внутренними (внутри ява-машины) с политиками безопасности (security manager).
Так что вопрос - почему не читается файл, иногда очень сложный.
Начните с простого - проверки прав на сам файл и проверки пользователя, под которым запущен томкат.
И да, в resources на сервере ничего писать не нужно (!). В самом приложении обычно делают настройку, где нибудь в конфигурации, куда приложению писать файлы, либо работайте с временными файлами - https://mkyong.com/java/how-to-create-temporary-fi...
Да и вообще, resources - святое, только для чтения в любой java-программе! Ибо оно в jar-архиве! Также всякие мета-каталоги типа META-INF и иже с ними (WEB-INF, EJB-INFO ...) - харам!