【问题标题】:"PWC3999: Cannot create a session after the response has been committed" [duplicate]“PWC3999:提交响应后无法创建会话”[重复]
【发布时间】:2011-07-29 06:45:52
【问题描述】:

我的应用程序的一个页面出现了这个奇怪的问题。它抛出了我在标题中提到的错误:

PWC3999: Cannot create a session after the response has been committed

我已经查看了有关此主题的其他帖子,但我没有看到任何适用于这种情况的内容,因为没有新的 Servlet/Filter 被添加到应用程序中,并且在对xhtml 文件。 如果我删除任何行,错误将停止显示。 起初我认为可能是缓冲区大小有问题并增加了值(为了确定,要大 10 倍),但这并没有解决问题。

而且,老实说,我不认为这与文件的大小有关,因为它曾经更大,而且它工作时没有任何问题。

我也检查过,但没有找到针对这种情况调用的任何转发/重定向。

有人可以帮我解决这个问题吗?

亲切的问候,

卡洛斯·费雷拉

编辑:GF v3.1 会出现此错误,但 GF v3.0.1 不会出现此错误,这可能是 facelets 实现的错误吗?

【问题讨论】:

    标签: xhtml jsf-2 facelets glassfish-3


    【解决方案1】:

    您在 XHTML 文件中编写 JS 代码?很可能编辑后的 ​​JS 代码包含导致 XML 解析异常的 XML 语法错误,这反过来又迫使容器显示 HTTP 500 错误页面(很可能是需要为其创建会话的自定义页面),但失败是因为响应已经提交。这是我能根据目前给定的信息考虑的最佳方案。在以后的问题中,请添加整个堆栈跟踪。它包含答案。

    无论根本原因是什么,您都需要将 JS 代码放在您自己的 JS 文件中,该文件由 <script src> 包含。 JS 语言包含几个操作符,它们是 XML 中的特殊字符,如 &< 等,您需要对它们进行 XML 转义或包装在 CDATA 中。但这很丑。

    【讨论】:

    • 您好,感谢您的回复。问题不在于 JS,因为正如我所说,如果我删除文件上的随机行,错误就会消失。
    • 顺便说一句,堆栈跟踪非常庞大,这就是我没有包含它的原因。您提到的场景发生了(重定向到自定义错误页面),但错误不是由 JS 引起的。
    • 尝试清除浏览器缓存。
    【解决方案2】:

    我遇到了同样的问题,当我添加一个没有 id 的额外按钮时,异常出现在日志中,但是当我将 id 添加到新按钮时,异常消失了。尝试将 id 放入产生错误的组件中。

    【讨论】:

      【解决方案3】:

      我必须自己处理这个错误,但我注意到它发生在我单独测试这个模块时,启动我所有的 webapp proyect,然后尝试模块本身来防止这个错误。

      也许你想试试看!

      【讨论】:

        猜你喜欢
        • 2013-05-29
        • 2011-01-04
        • 2012-06-12
        • 1970-01-01
        • 2012-06-06
        • 2021-09-24
        • 1970-01-01
        • 2012-08-06
        相关资源
        最近更新 更多