当一个简单的JSF应用程序运行时,Tomcat 7 Log会产生错误

时间:2013-01-31 16:09:11

标签: tomcat intellij-idea tomcat7

我遵循了本指南(http://wiki.jetbrains.net/intellij/Developing_JSF_applications),并使用JSF创建了一个简单的Hello world应用程序。 它运行正常,它会生成一个显示短语“Hello world”的http://localhost:8080/index.faces页面。 问题是Tomcat 7日志显示严重错误。 以下是它的说法:

  

2013年1月31日下午5:58:42 org.apache.catalina.core.StandardWrapperValve   在上下文中用servlet [jsp]调用SEVERE:Servlet.service()   path []抛出异常[处理JSP页面时发生异常   第14行的/index.jsp

     

11:简单的jsp第12:13页:   14:15:16:
   17:

     

Stacktrace:]带根本原因java.lang.RuntimeException:找不到   FacesContext at   javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:1855)     在   javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1672)     在   org.apache.jsp.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:111)     在org.apache.jsp.index_jsp._jspService(index_jsp.java:83)at   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)at   javax.servlet.http.HttpServlet.service(HttpServlet.java:728)at at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)     在   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)     在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:728)at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)     在   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)     在   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)     在   org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)     在   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)     在   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)     在   org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)     在   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)     在   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)     在   org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)     在   org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:589)     在   org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:310)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:603)     在java.lang.Thread.run(Thread.java:722)

     

2013年1月31日下午5:58:47 org.apache.catalina.core.ApplicationContext   日志

我是JSF的新手,所以我无法理解这个错误意味着什么。 有任何想法吗? 比你。

PS :(我正在运行山狮,我正在使用IntelliJ Idea Ultimate 12)。

1 个答案:

答案 0 :(得分:1)

此异常可以忽略,它在某些验证期间发生,当请求index.jsp页而不是index.faces时。

如果您在浏览器中刷新index.faces,则不会再看到任何错误,如果您打开index.jsp,您将在Tomcat日志中看到相同错误的第二个副本。

index.jsp是默认页面,因此如果请求http://localhost:8080,您将收到此错误。

可以通过在web.xml下的web-app中添加以下内容来修复此问题:

<welcome-file-list>
    <welcome-file>index.faces</welcome-file>
</welcome-file-list>

当您只打开index.jsp时,将无法访问此http://localhost:8080