У меня есть веб-приложение Java/Maven с использованием инфраструктуры Spark, которую я пытаюсь развернуть на удаленном сервере Tomcat, используя плагин Cargo. Я никогда не делал этого с помощью Java, и мне сложно заниматься статическими файлами. Структура каталогов для моей разобранной войны:Веб-приложение Maven на удаленном сервере: отсутствующие html-файлы
приложения имя
- META-INF
- общественное
---- image.jpg
--- - HTML
------ Index.html
- WEB-INF
Когда я использую следующий код:
return "<html><body><img src='/app-name/public/image.jpg' /></body></html>";
Я могу вынести штраф изображения. Я также могу получить доступ как к изображениям, так и к html-файлу, перейдя по адресу domain.com:8080/app-name/public/image.jpg и domain.com:8080/app-name/public/html/Index.html Но, когда я пытаюсь сделать html используя ...
// location of the file on the server...
file = "/app-name/public/html" + file;
// location of the file on localhost
//file = "public/html/" + file;
BufferedReader buffer = new BufferedReader(new FileReader(file));
Я застреваю с исключением FileNotFoundException. Он отлично работает на localhost (и работает функция рендеринга). Я просто не могу найти файл Index.html на удаленном сервере.
Для знакомых с Spark, вы знаете, что на самом деле нет тонны примеров. Я как бы подхожу, когда я иду, и я надеялся, что покажу изображение, что я на правильном пути. У кого-нибудь есть предложения? Я подозреваю, что это, должно быть, проблема с classpath, но я сейчас немного озадачен этим. Я показал только наиболее релевантные фрагменты; Я могу разместить больше, если потребуется!
EDIT: Исключение:
java.io.FileNotFoundException: /app-name/public/html/Index.html (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:97)
at java.io.FileReader.<init>(FileReader.java:58)
at com.render.Render.parseFile(Render.java:35)
at com.render.Render.render(Render.java:23)
at com.main.Main$1.handle(Main.java:41)
at spark.webserver.MatcherFilter.doFilter(MatcherFilter.java:136)
at spark.servlet.SparkFilter.doFilter(SparkFilter.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:722)
Какова полная версия 'FileNotFoundException', полный путь? –
@SotiriosDelimanolis FileNotFoundexception не включает имя файла, который не найден. –
@ ThorbjørnRavnAndersen Он должен показать что-то вроде 'java.io.FileNotFoundException: \ my \ file.txt (система не может найти указанный путь)' –