google-app-engine - java.io.PrintWriter.write 处的 java.lang.NullPointerException

标签 google-app-engine jsf primefaces

在使用 PrimeFaces' <p:wizard> component 运行应用程序时,我收到以下错误:

java.lang.NullPointerException
    at java.io.PrintWriter.write(PrintWriter.java:473)
    at com.sun.faces.application.view.WriteBehindStateWriter.write(WriteBehindStateWriter.java:127)
    at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.write(HtmlResponseWriter.java:666)
    at org.primefaces.component.wizard.WizardRenderer.encodeStepStatus(WizardRenderer.java:236)
    at org.primefaces.component.wizard.WizardRenderer.encodeMarkup(WizardRenderer.java:158)

这是怎么引起的,我该如何解决?

最佳答案

您显然正在使用仍处于非最终阶段的 PrimeFaces 3.0。这显然是 PrimeFaces 中的一个错误。您需要将其报告给 PF 人员,以便他们可以修复它。

当某些 PrimeFaces 3.0 组件缺少明显的强制属性时,我自己也经常看到这种愚蠢的异常。例如,

<p:selectOneMenu>
  <f:selectItem itemValue="foo" />
</p:selectOneMenu>

以上与 <h:selectOneMenu> 完美配合.项目值被用作组件的值和标签。 <f:selectItem>也是如此被指定工作。但是,PrimeFaces <p:selectOneMenu>期望 itemLabel属性由于某种原因始终存在并通过 null属性值,而无需事先直接检查响应编写器,这又会抛出一个完全令人困惑的 NullPointerException ,正是你得到的那个。添加 itemLabel属性解决了它:

<p:selectOneMenu>
  <f:selectItem itemValue="foo" itemLabel="foo" />
</p:selectOneMenu>

我不知道 <p:wizard> 中有任何类似的问题(我从未使用过它),但您可能想尝试复制 showcase example 的代码1:1,然后在此基础上进一步构建,而不是在没有任何指导的情况下从头开始创建。

关于google-app-engine - java.io.PrintWriter.write 处的 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7950387/

相关文章:

java - PrimeFaces 4.0 selectOneMenu-ajax-call 适用于 GlassFish 4.0,但不适用于 Tomcat 7.0.27?

jsf - 如何停止与 Primefaces 轮询组件的 ajax 通信

jsf - 我们可以用 <p :calendar> 应用掩码操作吗

java - p :commandButton inside p:pdataTable/p:dataGrid/ui:repeat does not invoke method

python - python Ajax如何发布数据

python - Mechanize 不适用于在 Google Appengine 中自动登录 gmail

java - 尝试在 GAE 中获取子对象时出现 JUDO ObjectNotFoundException

security - 我的基本用户身份验证方法有什么问题吗?

java - 确定绝对id

Java Web 应用程序需要同时支持 Web 和移动设备