java.lang.NullPointerException at java.io.PrintWriter.write - PullRequest
3 голосов
/ 31 октября 2011

При запуске приложения с PrimeFaces '<p:wizard> компонент , я получаю следующую ошибку:

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)

Как это вызвано и как я могу решить эту проблему?

1 Ответ

2 голосов
/ 31 октября 2011

Вы, очевидно, используете 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> (я никогда не использовал его), но вы можете попробовать скопировать код пример демонстрации 1: 1 и последующее построение на основе этого, вместо создания с нуля без каких-либо указаний.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...