【问题标题】:Error Rendering View: java.lang.IllegalStateException: Cannot create a session after the response has been committed错误呈现视图:java.lang.IllegalStateException:提交响应后无法创建会话
【发布时间】:2013-11-27 10:15:51
【问题描述】:

我正在 jboss AS 7.1 上开发一个企业应用程序。 我正在阅读这些问题的答案(Q1Q2),询问与我相同的问题,解决方案是升级到 Mojarra 2.1.9。 我正在使用 maven,但我没有引用任何 Mojarra jar 依赖项,因为它是由 jboss 服务器提供的,我不知道它自己使用哪个版本,因为这些问题很久以前就被问过了,所以我不知道是否解决方案只是向我的 pom 添加依赖项以覆盖 jboss 使用的版本(通常,jboss AS 7.1 已经克服了这个问题,我不明白为什么它仍然会发生在我身上).. 我应该添加哪个版本或者目前最好的解决方案是什么?

干杯。

【问题讨论】:

    标签: jsf maven session jboss7.x


    【解决方案1】:

    JBoss AS 7.1.0 附带 Mojarra 2.1.5,因此您肯定需要升级。然而不幸的是,JBoss 7.1.0 有一个错误,它使得无法从 webapp 的/WEB-INF/lib 升级 Mojarra。这在 7.1.1 中已修复。对于 7.1.0,您需要在 JBoss 自己的模块中升级 Mojarra。

    JBoss AS 7.x 和 EAP 6.x 的详细升级说明可以在这个答案中找到:Upgrade JSF / Mojarra in JBoss AS / EAP / WildFly


    更新:根据 cmets,事实证明您没有仔细指定问题中的版本,并且您实际上使用的是 Mojarra 2.1.7 随附的 7.1.1,您也肯定需要升级。只需将所需 Mojarra 版本的 javax.faces.jar 文件(当前,2.1.26 是最新可用的 2.1.x)放在 webapp 的 /WEB-INF/lib 中,并将以下上下文参数添加到 webapp 的 web.xml

    <context-param>
        <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
        <param-value>true</param-value>
    </context-param> 
    

    【讨论】:

    • 抱歉我不小心.. 但我也使用 jsf 2.2(在我的项目方面设置)所以我在查看 javaserverfaces.java.net/download.html 并找到了 javax.faces-api2.2 并将其添加到我的 pom.. 我希望它也适合
    • 有jsf 2.2的jsf-impl-xxx.jar,单独javax.faces-api.jar就够了吗?
    • JBoss 7.1.x 不支持从 webapp 端提供 JSF 2.2。它只能在 JSF 2.1 模式下运行,您将无法使用新的 JSF 2.2 特定功能。您最好坚持使用 JSF 2.1。至于 Maven,它在做什么以及如何配置它对我来说真的无关紧要,但它最终应该放置单个 javax.faces.jar 文件,两个 jsf-api.jar+@ 987654332@ 文件在构建的 WAR 的/WEB-INF/lib 中。构建/导出 WAR 并验证 Maven 是否正确。
    • 非常感谢 BalusC!
    • 在 jboss AS 7.1.1 community.jboss.org/thread/203257 中部署 jsf 2.2.1 的步骤,对我来说非常有用!
    猜你喜欢
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 2014-05-18
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2011-12-25
    相关资源
    最近更新 更多