После миграции JSF с 1.2 на 2.0 я начинаю получать исключение после отправки commandButton:
javax.faces.FacesException: java.lang.NullPointerException в org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap (ExceptionHandlerImpl.java:241) в org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle (ExceptionHandlerImpl.java:156) в org.apache.myfaces.lifecycle.LifecycleIjImplder.jpgв javax.faces.webapp.FacesServlet.service (FacesServlet.java:191) в org.mortbay.jetty.servlet.ServletHolder.handle (ServletHolder.java:511) в org.mortbay.jetty.servlet.ServletHandin(ServletHandler.java:1166) в com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter (ServeBlobFilter.java:58) в org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (Serv).) на com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) на org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) в com.google.appengine.tools.development.StaticFileFilter.doFilter (StaticFileFilter.java:122) в org.mortbay.jetty.servil.lerf.CherletServletHandler.java:1157) в org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:388) в org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) в org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:182) в org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:765) в org.mortbay.jetty.webapp.WebAppContext.handle (WebAppCon418).) в com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:70) в org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) в com.google.app.development.JettyContainerService $ ApiProxyHandler.handle (JettyContainerService.java:349) в org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) в org.mortbay.jetty.Server.handle (Server.java:326) в org.mortbay.jetty.HttpConnection.handleRequest (HttpConnection.java:542) в org.mortbay.jetty.HttpConnection $ RequestHand.content (HttpConnection.java:938) на org.mortbay.jetty.HttpParser.parseNext (HttpParser.java:755) на org.mortbay.jetty.HttpParser.parseAvailable (HttpParser.java.mort).HttpConnection.handle (HttpConnection.java:404) в org.mortbay.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:409) в org.mortbay.thread.QueuedThreadPool $ PoolThread.run (Queuedjol2: 58): java.lang.NullPointerException в com.sun.facelets.FaceletViewHandler.getRenderedViewId (FaceletViewHandler.java:746) в com.sun.facelets.FaceletViewHandler.buildView (FaceletViewHandler.java:491) в com.sun.facelets.lerrenView.(FaceletViewHandler.java:553) в org.apache.myfaces.lifecycle.RenderResponseExecutor.execute (RenderResponseExecutor.java:122) в org.apache.myfaces.lifecycle.LifecycleImpl.render (LifecycleImpl.java:207) ... еще 26
javax.faces.FacesException: java.lang.NullPointerException в org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap (ExceptionHandlerImpl.java:241) в org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle (ExceptionHandlerImpl.java:156) в org.apache.myfaces.lifecycle.LifecycleIjImplder.jpgв javax.faces.webapp.FacesServlet.service (FacesServlet.java:191) в org.mortbay.jetty.servlet.ServletHolder.handle (ServletHolder.java:511) в org.mortbay.jetty.servlet.ServletHandin(ServletHandler.java:1166) в com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter (ServeBlobFilter.java:58) в org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (Serv).) на com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) на org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1157) в com.google.appengine.tools.development.StaticFileFilter.doFilter (StaticFileFilter.java:122) в org.mortbay.jetty.servil.lerf.CherletServletHandler.java:1157) в org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:388) в org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) в org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:182) в org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:765) в org.mortbay.jetty.webapp.WebAppContext.handle (WebAppCon418).) в com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:70) в org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) в com.google.app.development.JettyContainerService $ ApiProxyHandler.handle (JettyContainerService.java:349) в org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) в org.mortbay.jetty.Server.handle (Server.java:326) в org.mortbay.jetty.HttpConnection.handleRequest (HttpConnection.java:542) в org.mortbay.jetty.HttpConnection $ RequestHand.content (HttpConnection.java:938) на org.mortbay.jetty.HttpParser.parseNext (HttpParser.java:755) на org.mortbay.jetty.HttpParser.parseAvailable (HttpParser.java.mort).HttpConnection.handle (HttpConnection.java:404) в org.mortbay.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:409) в org.mortbay.thread.QueuedThreadPool $ PoolThread.run (Queuedjol2: 58): java.lang.NullPointerException в com.sun.facelets.FaceletViewHandler.getRenderedViewId (FaceletViewHandler.java:746) в com.sun.facelets.FaceletViewHandler.buildView (FaceletViewHandler.java:491) в com.sun.facelets.lerrenView.(FaceletViewHandler.java:553) в org.apache.myfaces.lifecycle.RenderResponseExecutor.execute (RenderResponseExecutor.java:122) в org.apache.myfaces.lifecycle.LifecycleImpl.render (LifecycleImpl.java:207)
... еще 26
Разметка JSF:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:t="http://myfaces.apache.org/tomahawk" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <ui:composition template="layout.jsp"> <ui:define name="title">Редактирование шаблона</ui:define> <ui:define name="content"> <p> <a href="/templates.jsf">Все шаблоны</a> </p> <h:form> <h:inputHidden value="#{template.id}" /> Name: <h:inputText value="#{template.name}"/> <br/> Content Type: <h:inputText value="#{template.contentType}"/> <br/> Content: <h:inputTextarea value="#{template.content}"/> <br/> Description: <h:inputTextarea value="#{template.description}"/> <br/> <h:commandButton value="Сохранить" action="#{template.submit}"> </h:commandButton> </h:form> </ui:define> </ui:composition> </html>
В другом своем вопросе вы упомянули, что используете Mojarra 2.0, но трассировка стека указывает, что у вас все еще есть MyFaces 1.1 в пути к классам. Избавиться от этого. Вы не можете смешивать несколько реализаций JSF.