我用SparkJava框架开发了一个web应用程序。当我在Eclipse中运行该应用程序时,它运行得很好。当我将其打包成jar文件,运行jar文件并在浏览器中打开web应用程序时,我收到一个500内部错误。
Console返回一个FileNotFoundException。hbs文件位于src/main/resources/template中。
org.eclipse.jetty.io.RuntimeIOException: java.io.FileNotFoundException: /templates/index.hbs
at spark.template.handlebars.HandlebarsTemplateEngine.render(HandlebarsTemplateEngine.java:78) ~[jar:rsrc:spark-template-handlebars-2.7.1.jar!/:?]
at App.lambda$0(App.java:42) ~[rsrc:./:?]
at spark.SparkBase$1.handle(SparkBase.java:264) ~[jar:rsrc:spark-core-2.1.jar!/:?]
at spark.webserver.MatcherFilter.doFilter(MatcherFilter.java:154) [jar:rsrc:spark-core-2.1.jar!/:?]
at spark.webserver.JettyHandler.doHandle(JettyHandler.java:60) [jar:rsrc:spark-core-2.1.jar!/:?]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:179) [jar:rsrc:jetty-server-9.0.2.v20130417.jar!/:?]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136) [jar:rsrc:jetty-server-9.0.2.v20130417.jar!/:?]
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) [jar:rsrc:jetty-server-9.0.2.v20130417.jar!/:?]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [jar:rsrc:jetty-server-9.0.2.v20130417.jar!/:?]
at org.eclipse.jetty.server.Server.handle(Server.java:451) [jar:rsrc:jetty-server-9.0.2.v20130417.jar!/:?]
at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:252) [jar:rsrc:jetty-server-9.0.2.v20130417.jar!/:?]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:266) [jar:rsrc:jetty-server-9.0.2.v20130417.jar!/:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:240) [jar:rsrc:jetty-io-9.0.2.v20130417.jar!/:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:596) [jar:rsrc:jetty-util-9.0.2.v20130417.jar!/:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:527) [jar:rsrc:jetty-util-9.0.2.v20130417.jar!/:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Caused by: java.io.FileNotFoundException: /templates/index.hbs
at com.github.jknack.handlebars.io.URLTemplateLoader.sourceAt(URLTemplateLoader.java:70) ~[jar:rsrc:handlebars-4.0.6.jar!/:?]
at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:357) ~[jar:rsrc:handlebars-4.0.6.jar!/:?]
at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:343) ~[jar:rsrc:handlebars-4.0.6.jar!/:?]
at spark.template.handlebars.HandlebarsTemplateEngine.render(HandlebarsTemplateEngine.java:75) ~[jar:rsrc:spark-template-handlebars-2.7.1.jar!/:?]我不明白的是,为什么当我在Eclipse中运行它时,它可以工作,而当我将它打包到jar中时却不能。
你知道问题出在哪里吗?
发布于 2018-10-18 01:40:20
我自己解决了这个问题。问题出在Eclipse上。因为它对其他有同样问题的人很有用,所以我将自己创建答案。
导致这个问题的原因是/src/main/resource文件夹包含在Java构建路径中,但由于某种原因并没有包含所有子文件夹。已将值"**“分配给"Excluded:”项。在我将值更改为"(None)“之后,找到了模板文件。

https://stackoverflow.com/questions/52459484
复制相似问题