我已經創建了一個簡單JSF2.0應用程序,它在我的電腦運行正常,但是當我嘗試在Heroku上運行它,我得到這個錯誤:顯示java.lang.NullPointerException在com.sun.faces.context.flash.ELFlash.getFlash
HTTP ERROR 500
Problem accessing /login.xhtml. Reason:
Server Error
Caused by:
java.lang.NullPointerException
at com.sun.faces.context.flash.ELFlash.getFlash(ELFlash.java:93)
at com.sun.faces.context.flash.ELFlash.getELFlash(ELFlash.java:124)
at com.sun.faces.context.flash.ELFlash.doPostPhaseActions(ELFlash.java:722)
at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:175)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:108)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:481)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:940)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:874)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
at org.eclipse.jetty.server.Server.handle(Server.java:349)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:904)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:565)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Thread.java:636)
那麼,這個問題的解決方案? 在此先感謝。
Mojarra是什麼版本? ELFlash#getELFlash()方法在2.0.0中不存在,直到使用當前的2.1.4。 – BalusC
嗨。我使用的是2.0.0-b13,然後我嘗試了2.1.4,但我又遇到了一個錯誤。最後我改的MyFaces和它的作品,但它無法讀取註釋(!?),我必須每託管bean /屬性格式添加到faces-config.xml中。 在任何情況下,它的工作原理在這裏MT電腦,但不是在Heroku上。 我認爲問題是依賴關係,我使用的是Maven 3.0.3。什麼是jsf的正確依賴關係? –
Mojarra 2.1.x需要Servlet 3.0。目前尚不清楚你使用的是什麼版本的碼頭和servlet的版本的'web.xml'聲明,但如果它的Servlet 2.5,你需要鑽嘴魚科2.0.x版本(目前最新的是2.0.6)。依賴關係是至少2.5的Servlet(由容器提供)和JSTL 1.2(可以或可以不通過容器中提供,相信碼頭沒有,但可能的Heroku做)。另請參閱需求清單http://javaserverfaces.java.net/nonav/rlnotes/2.0.6/releasenotes.html。 – BalusC