当一个简单的JSF应用程序正在运行时,Tomcat7日志会产生一个错误

当一个简单的JSF应用程序正在运行时,Tomcat7日志会产生一个错误,tomcat,intellij-idea,tomcat7,Tomcat,Intellij Idea,Tomcat7,我遵循了这个指南()并使用JSF创建了一个简单的Hello world应用程序。 它运行良好,并生成http://localhost:8080/index.faces显示短语“Hello world”的页面。 问题是Tomcat7日志显示了严重错误。 它是这样说的: 2013年1月31日下午5:58:42 org.apache.catalina.core.StandardWrapperValve 在上下文中为Servlet[jsp]调用SEVERE:Servlet.service() 路径[]引

我遵循了这个指南()并使用JSF创建了一个简单的Hello world应用程序。 它运行良好,并生成<代码>http://localhost:8080/index.faces显示短语“Hello world”的页面。 问题是Tomcat7日志显示了严重错误。 它是这样说的:

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

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

Stacktrace:]的根本原因为java.lang.RuntimeException:找不到 FacesContext在 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\u jsp.\u jsp服务(index\u jsp.java:83)上 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)位于 http.HttpServlet.service(HttpServlet.java:728)位于 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) 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) 运行(Thread.java:722)

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

我是JSF新手,所以我无法理解这个错误的含义。 有什么想法吗? 比你强


PS:(我运行的是mountain lion,我使用的是IntelliJ Idea Ultimate 12)。

这个异常可以忽略,它发生在一些验证过程中,当请求
index.jsp
页面而不是
index.faces

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

index.jsp
是默认页面,因此如果
http://localhost:8080
已被请求

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

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

索引面

这样,当您只打开
http://localhost:8080

如何访问Tomcat 7主页<代码>http://localhost:8080现在在index.faces页面重定向我。在deployment选项卡中更改工件的上下文,以便将应用程序部署在不同的上下文而不是根上下文下,然后您应该能够访问默认的根上下文。