【问题标题】:Tomcat 7 Log produces an error when a simple JSF application is running运行简单的 JSF 应用程序时,Tomcat 7 日志会产生错误
【发布时间】:2013-01-15 19:23:41
【问题描述】:

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

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

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_jsp._jspService(index_jsp.java:83) 在 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 在 javax.servlet.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) 在 java.lang.Thread.run(Thread.java:722)

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

我是 JSF 的新手,所以我不明白这个错误是什么意思。 有任何想法吗? 比你。

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

【问题讨论】:

    标签: tomcat intellij-idea tomcat7


    【解决方案1】:

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

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

    index.jsp 是默认页面,所以如果请求http://localhost:8080,你会得到这个错误。

    问题可以通过在web.xmlweb-app下添加以下内容来解决:

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

    这样index.jsp在你只打开http://localhost:8080时就不会被访问。

    【讨论】:

    • 如何访问 Tomcat 7 主页? http://localhost:8080 现在将我重定向到 index.faces 页面。
    • 在部署选项卡中更改工件的上下文,以便您的应用程序部署在不同的上下文而不是 ROOT 下,然后您应该能够访问默认的 ROOT 上下文。
    猜你喜欢
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 2013-01-25
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多