2016-10-25 7 views
1

で回答しましたthisthis one答えはありませんが、どちらも機能しませんでした。最初のものはindex.html(パスとそのようなものを指定する必要はありません)だけで動作します。ファイルが存在し、Sparkがindex.htmlを返しても、2番目の解決策のコードは私にNullPointerExceptionを与えます。HTMLページSparkJava

ヘルパークラス

class Helper(){ 
    String renderContent(String htmlFile) { 
     try { 
      return new String(Files.readAllBytes(Paths.get(getClass().getResource(htmlFile).toURI())), StandardCharsets.UTF_8); 
     } catch (IOException | URISyntaxException e) { 
      e.printStackTrace(); 
      mailSendingList.add(e.toString()); 
     } 
     return null; 
    } 
} 

ルート

get("/404", (req, res) -> helper.renderContent("404.html")); 

例外

java.lang.NullPointerException 
at Helper.renderContent(Helper.java:177) 
at Main.lambda$main$1(Main.java:33) 
at spark.SparkBase$1.handle(SparkBase.java:311) 
at spark.webserver.MatcherFilter.doFilter(MatcherFilter.java:159) 
at spark.webserver.JettyHandler.doHandle(JettyHandler.java:60) 
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:179) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136) 
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 
at org.eclipse.jetty.server.Server.handle(Server.java:451) 
at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:252) 
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:266) 
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:240) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:596) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:527) 
at java.lang.Thread.run(Thread.java:745) 

答えて

1

マイファイルパスが間違っていました。 ("404.html")("public/404.html")を変更することができました。

1

getClass().getResource(htmlFile)のリターンをチェックしたリソースが見つからないので、これはおそらくnullです。

ファイル「404.html」とクラスパスのルートを持っている場合は、にあなたのコードを変更します(「/」の挿入に気づく)

get("/404", (req, res) -> helper.renderContent("/404.html")); 
+0

いいえ、動作しません:( –

+0

) 'getResource(htmlFile)'呼び出しの結果は何ですか?このリソースは見つかりましたか? –

+0

それは私にNullPointerをスローしますが、問題を解決しました。質問の下に –