Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Как задать относительную ссылку на файл для чтения в Springe-mvc / 25 сообщений из 66, страница 1 из 3
25.05.2020, 19:13
    #39961864
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Здравствуйте!

Пишу Java-Spring приложение на локальном ПК (Windows). В данном приложении, при нажатии на кнопку идет считывание данных из файла Excel, путь к которому прописан в строковой переменной ("E:..."). Я это приложение размещаю на удаленном сервере (Linux). Это делаю закидывая war-архив в Tomcat и авто деплоя. Путь к файлу, из которого следует считывать данные, на сервере уже соответственно другой (/opt/tomcat/webapps/Wtr/).

Как задать ссылку на файл для чтения, если директории с файлом на ПК, где ведется разработка и на сервере разные?

Попробовал 2-а способа задать с помощью относительной ссылки относительно директории приложения:
1)
Код: java
1.
2.
3.
4.
@Autowired
ServletContext servletContext;

String wayPath=servletContext.getContextPath();// "/fast"


Он вернул "/fast", которая находится в "/opt/tomcat/webapps/". Если я туда кидаю свой файл, то после запуска отладки он просто удаляется. Поэтому на мой относительный путь "/Hydrometcentre.xls" вылетает исключение - Файл не найден.

2)
Код: java
1.
2.
3.
import java.io.File;

String wayPath2=new File(".").getAbsolutePath();// "E:\Fast_w\apache-tomcat-9.0.19\bin\."



Он возвращает - "E:\Fast_w\apache-tomcat-9.0.19\bin.". Но это директория самого Tomcat. Попытка туда закинуть файл, также вызвала исключение.

Что-то делаю не так.
...
Рейтинг: 0 / 0
25.05.2020, 19:40
    #39961871
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir,
Пропиши путь в системную переменную Оси.
Если код не находит выдай ошибку: "не установлена переменная ENV_MY_PETRO
...
Рейтинг: 0 / 0
26.05.2020, 06:35
    #39961981
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir,


Заведите в property-file Spring-а переменную, где будет указан путь к вашему файлу.
Код: java
1.
2.
3.
4.
5.
6.
7.
@Configuration
@ConfigurationProperties(prefix="mycoolapp")
public MyCoolAppProperties {
    private String pathToExcelFile;
    // Getter & Setter
    ....
}



Код: java
1.
2.
3.
4.
5.
6.
7.
@SpringBootApplication
@EnableConfigurationProperties(MyCoolAppProperties.class)
public class MyCoolApp {
    public static void main(String[] args) {
        SpringApplication.run(MyCoolApp.class, args);
    }
}




application.yaml
Код: python
1.
2.
mycoolapp:
    pathToExcelFile: C:\excel.xls



Где-то так

application.yaml кладем рядом с jar-ником.
По идее он перкрывает, тот, что бдует собран в jar-нике
...
Рейтинг: 0 / 0
30.05.2020, 13:04
    #39964346
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
mad_nazgul, у меня не SpringBoot, просто Spring. Это придется новые зависимости устанавливать.
Есть способ по проще? Костыль какой-нибудь?
...
Рейтинг: 0 / 0
30.05.2020, 14:02
    #39964367
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir,
В твоем спринге web.xml есть?
Там тоже пару строк.
...
Рейтинг: 0 / 0
30.05.2020, 14:07
    #39964368
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
PetroNotC Sharp, перепутал, есть pom.xml
...
Рейтинг: 0 / 0
30.05.2020, 14:11
    #39964370
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
PetroNotC Sharp, есть glassfish-web.xml
...
Рейтинг: 0 / 0
30.05.2020, 14:38
    #39964375
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
PetroNotC Sharp,
Попробовал прописать полный абсолютный путь на сервере заранее перед заливкой:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
String relationWay="/opt/tomcat/webapps/water_war/Hydrometcentre.xls";//way
        // Read XSL file
        FileInputStream inputStream = null;
        try {
            inputStream = new FileInputStream(new File(relationWay));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        // Get the workbook instance for XLS file
        HSSFWorkbook workbook = null;
        try {
            workbook = new HSSFWorkbook(inputStream); // 139 строка
        } catch (IOException e) {
            e.printStackTrace();
        }



Та же ошибка в 139 строке кода, где создается объект книги:
авторRoot Cause

java.lang.NullPointerException
org.apache.poi.poifs.filesystem.POIFSFileSystem.closeInputStream(POIFSFileSystem.java:333)
org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:321)
org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:401)
org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:382)
service.ReadExcel.readExcelAll(ReadExcel.java:139)
controller.UserController.administration(UserController.java:134)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
...
Рейтинг: 0 / 0
30.05.2020, 16:40
    #39964405
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir,
Мой выше вариант прочитать с операционки чем не подошел?
...
Рейтинг: 0 / 0
30.05.2020, 16:48
    #39964406
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir,
>Попробовал прописать полный абсолютный путь на сервере заранее перед заливкой:
==
Я запутался у тебя.
Напиши тут в какой директории работает программа.
И потом мы подскажем как сделать чтобы на любом сервере работало.
Или у тебя вообще нигде не работает?
...
Рейтинг: 0 / 0
30.05.2020, 23:41
    #39964542
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir,

Дружище. Кто тебя учил так работать с exceptions?

Они - не для того чтобы на экране печатать стектрейс.

А для того чтобы отработать логику принятия решений в случае аварии.
...
Рейтинг: 0 / 0
31.05.2020, 12:13
    #39964592
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
PetroNotC Sharp, после того как я собрал у себя на ПК под Windows war-архив, я его деплою на удаленный сервер Linux через Tomcat Menager. После диплоя war-архива на сервере Tomcat в директории /opt/tomcat/webapps/ создается папка данного приложения "Wtr" из которой оно и работает. В этой папке (/opt/tomcat/webapps/Wtr/) создаются 2 рабочие папки - META-INF и WEB-INF. В общем на удаленном сервере всё приложение размещено в директории /opt/tomcat/webapps/Wtr/.

У меня на ПК оно диплоится и работает из папки E:\Fast_wt\apache-tomcat-9.0.19\webapps\water, а файл к которому я обращаюсь по абсолютному пути лежит в E:\Fast_wt\apache-tomcat-9.0.19\webapps.

На сервере я загружаю файл в директорию /opt/tomcat/webapps/, но не знаю как прописать так путь что бы приложение его нашло.
...
Рейтинг: 0 / 0
31.05.2020, 12:16
    #39964595
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir, в дебаггере в калькуляторе просто исполни эту строку.

Код: java
1.
new File("/opt/tomcat/webapps/water_war/Hydrometcentre.xls")



Если путь верный - ты получишь ненулевоей объект InputStream. Если путь неверный - будет
FileNotFoundEx.
...
Рейтинг: 0 / 0
31.05.2020, 12:24
    #39964599
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
mayton, пока нужно добиться чтобы заработало, а потом уже буду дописывать нюансы
...
Рейтинг: 0 / 0
31.05.2020, 12:31
    #39964602
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir
я его деплою на удаленный сервер Linux через Tomcat Menager.

выше ты сказал что у тебя glassFish файл сервера?
...
Рейтинг: 0 / 0
31.05.2020, 12:31
    #39964604
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
mayton, нет у меня на сервере дебагера, там стоит Линукс без графической оболочки, поставил ещё jdk, Tomcat, mysql and java-mysql connector, и все )
Я так пробовал 22142705 , не получилось, возможно тут ещё конфликт прав root и пользователя под которым работает приложение. Проверю ещё это
...
Рейтинг: 0 / 0
31.05.2020, 12:34
    #39964605
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir,
ЕЩЁ РАЗ!
Отвечай на все посты что тебе пишут мемберы!
Это хороший тон.
22142745
...
Рейтинг: 0 / 0
31.05.2020, 12:34
    #39964606
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
PetroNotC Sharp, у меня Tomcat, а почему он так этот файл назвал, или я его не создавал, когда сперва хотел глассфише деплоить, в общем это фигня
...
Рейтинг: 0 / 0
31.05.2020, 12:36
    #39964607
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
PetroNotC Sharp
Vlad__i__mir,
Мой выше вариант прочитать с операционки чем не подошел?

Не знаю как это сделать
...
Рейтинг: 0 / 0
31.05.2020, 12:38
    #39964608
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir
На сервере я загружаю файл в директорию /opt/tomcat/webapps/, но не знаю как прописать так путь что бы приложение его нашло.

- пропиши жестко гвоздями в коде и ответь на вопрос - работает на боевой машинке?
А потом уже с переменной и путями.
...
Рейтинг: 0 / 0
31.05.2020, 12:40
    #39964609
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir
PetroNotC Sharp
Vlad__i__mir,
Мой выше вариант прочитать с операционки чем не подошел?

Не знаю как это сделать
Сказал бы неделю назад. Не надо тут стеснятся по девчачьи.
А записать в линукс переменную умеем? Или тоже показать?
...
Рейтинг: 0 / 0
31.05.2020, 12:41
    #39964611
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
PetroNotC Sharp
Vlad__i__mir
пропущено...

Не знаю как это сделать
Сказал бы неделю назад. Не надо тут стеснятся по девчачьи.
А записать в линукс переменную умеем? Или тоже показать?


Лучше показать )
...
Рейтинг: 0 / 0
31.05.2020, 12:44
    #39964613
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
Vlad__i__mir
Лучше показать )
ОК
Отвечай на остальные посты - покажем.
...
Рейтинг: 0 / 0
31.05.2020, 12:49
    #39964617
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
mayton
Vlad__i__mir, в дебаггере в калькуляторе просто исполни эту строку.

Код: java
1.
new File("/opt/tomcat/webapps/water_war/Hydrometcentre.xls")



Если путь верный - ты получишь ненулевоей объект InputStream. Если путь неверный - будет
FileNotFoundEx.


Само приложение работает, но когда обращаюсь к файлу, то выдает ошибку 22142705 .
...
Рейтинг: 0 / 0
31.05.2020, 12:53
    #39964619
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать относительную ссылку на файл для чтения в Springe-mvc
PetroNotC Sharp
Vlad__i__mir
На сервере я загружаю файл в директорию /opt/tomcat/webapps/, но не знаю как прописать так путь что бы приложение его нашло.

- пропиши жестко гвоздями в коде и ответь на вопрос - работает на боевой машинке?
А потом уже с переменной и путями.


Само приложение работает, но когда обращаюсь к файлу, то выдает ошибку 22142705.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как задать относительную ссылку на файл для чтения в Springe-mvc / 25 сообщений из 66, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]