JSF 2.0提交commandButton后的NullPointerException异常

JSF 2.0提交commandButton后的NullPointerException异常,jsf,jsf-2,Jsf,Jsf 2,将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.Exception

将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.LifecycleImpl.render(LifecycleImpl.java:222) 在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:191) 在 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 在 com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 在 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.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.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(WebAppContext.java:418) 在 com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) 在 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 在 com.google.appengine.tools.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$RequestHandler.content(HttpConnection.java:938) 在 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) 在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 在 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 原因: 位于的java.lang.NullPointerException com.sun.facelets.FaceletViewHandler.getRenderedViewId(FaceletViewHandler.java:746) 在 FaceletViewHandler.buildView(FaceletViewHandler.java:491) 在 FaceletViewHandler.renderView(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,但stacktrace表明您的类路径中仍然有MyFaces 1.1。摆脱它。您不能混合使用多个JSF实现。

我认为我可以将依赖项更改为myfaces 2.0。我现在使用的是Mojarra 2.0,它可以正常工作!谢谢不客气。别忘了勾选最有帮助的问题答案。我也很想去,但我还是没有名声。据我所知,我不能投票或回答。