我有一个使用Spark框架的Java/Maven web应用程序,我试图使用Cargo插件将其部署到远程Tomcat服务器。我从来没有用Java做过这件事,而且我在处理静态文件方面遇到困难。我展开战争的目录结构:远程服务器上的Maven web应用程序:缺少html文件
应用程序名称
- META-INF
- 公共
---- image.jpg的
--- - html
------ Index.html
- WEB-INF
当我使用下面的代码:
return "<html><body><img src='/app-name/public/image.jpg' /></body></html>";
我能够呈现图像细腻。我也可以通过访问domain.com:8080/app-name/public/image.jpg和domain.com:8080/app-name/public/html/Index.html 访问图像和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。它在本地主机上正常工作(并且渲染功能也起作用)。我无法在远程服务器上找到Index.html文件。
对于那些熟悉Spark的人来说,你知道那里并不是很多的例子。我很喜欢这样做,我希望通过展示我处于正确轨道的形象。任何人有任何建议?不知怎的,我怀疑它一定是一个类路径问题,但我现在对此有点困惑。我只显示了最相关的片段;如果需要,我可以发布更多!
编辑:唯一的例外是:
所有的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'说,完整路径? – 2013-04-23 20:16:14
@SotiriosDelimanolis FileNotFoundexception不包含未找到文件的名称。 – 2013-04-23 20:25:16
@ThorbjørnRavnAndersen它应该显示类似于'java.io.FileNotFoundException:\ my \ file.txt(系统找不到指定的路径)' – 2013-04-23 20:27:25