【问题标题】:Faces Servlet threw exception: java.lang.IllegalStateExceptionFaces Servlet 抛出异常:java.lang.IllegalStateException
【发布时间】:2012-04-23 04:53:38
【问题描述】:

我正在尝试将我的应用程序从 jsf 1.2 迁移到 2.1。我写了一个示例 facelet 页面并尝试访问它。得到以下异常。不知道是什么导致了这个问题。如果仅执行此页面(通过删除与我的项目相关的所有代码和库,此页面将正确呈现)。关于可能导致此问题的任何帮助都会非常有帮助。

Servlet.service() for servlet Faces Servlet threw exception: java.lang.IllegalStateException: Header count exceeded allowed maximum: 128
    at org.apache.tomcat.util.http.MimeHeaders.createHeader(MimeHeaders.java:329) [jbossweb-7.0.10.Final.jar:]
    at org.apache.tomcat.util.http.MimeHeaders.addValue(MimeHeaders.java:347) [jbossweb-7.0.10.Final.jar:]
    at org.apache.coyote.Response.addHeader(Response.java:351) [jbossweb-7.0.10.Final.jar:]
    at org.apache.catalina.connector.Response.addHeader(Response.java:1110) [jbossweb-7.0.10.Final.jar:]
    at org.apache.catalina.connector.ResponseFacade.addHeader(ResponseFacade.java:502) [jbossweb-7.0.10.Final.jar:]
    at javax.servlet.http.HttpServletResponseWrapper.addHeader(HttpServletResponseWrapper.java:202) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at javax.servlet.http.HttpServletResponseWrapper.addHeader(HttpServletResponseWrapper.java:202) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at javax.servlet.http.HttpServletResponseWrapper.addHeader(HttpServletResponseWrapper.java:202) 
    at javax.servlet.http.HttpServletResponseWrapper.addHeader(HttpServletResponseWrapper.java:202) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at javax.servlet.http.HttpServletResponseWrapper.addHeader(HttpServletResponseWrapper.java:202) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at com.sun.faces.context.ExternalContextImpl.<init>(ExternalContextImpl.java:137) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at com.sun.faces.context.ExternalContextFactoryImpl.getExternalContext(ExternalContextFactoryImpl.java:73) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at com.sun.faces.context.FacesContextFactoryImpl.getFacesContext(FacesContextFactoryImpl.java:93) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:583) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.10.Final.jar:]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final.jar:]
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:734) [jbossweb-7.0.10.Final.jar:]
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:541) [jbossweb-7.0.10.Final.jar:]
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:479) [jbossweb-7.0.10.Final.jar:]
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:407) [jbossweb-7.0.10.Final.jar:]
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:546) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:364) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:154) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT]
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final]

【问题讨论】:

    标签: jakarta-ee jsf-2


    【解决方案1】:

    此问题与 faces-config.xml 有关。标题应该是。

    <faces-config version="2.0"
       xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
          http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
    

    【讨论】:

    • 有趣。我不希望那时会发生这种异常。你最初有什么?一个 JSF 1.2 一个?
    • @BalusC,是的,最初我有 1.2 标头。在我头疼了将近 2 天之后。从 EAR 中删除/添加每个文件,最后发现是 faces-config 头问题。
    【解决方案2】:

    在你的 head 元素中包含这个标签,如下所示:

    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </h:head>
    

    wiki的解释

    【讨论】:

    • 此元标记仅在最终用户从本地磁盘文件系统打开保存的网页时使用。 IE。当最终用户打开一个网页,然后在浏览器中执行 File>Save 以将其保存在磁盘上,然后从磁盘重新打开它。当通过 HTTP 提供页面时不使用它。而是使用 HTTP 响应标头中的那个。
    猜你喜欢
    • 2010-09-10
    • 2012-03-19
    • 1970-01-01
    • 2017-03-20
    • 2013-05-02
    • 2018-10-18
    • 2013-06-15
    • 1970-01-01
    相关资源
    最近更新 更多