Это может быть вызвано, только если FacesContext#getCurrentInstance()
возвращено null
. Любая попытка получить доступ или вызвать ссылку null
приведет к NullPointerException
. Смотрите также его javadoc :
Брошенный, когда приложение пытается использовать null
в случае, когда требуется объект. К ним относятся:
- Вызов метода экземпляра объекта
null
.
- Доступ или изменение поля объекта
null
.
- Взять длину
null
, как если бы это был массив.
- Доступ или изменение слотов
null
, как если бы это был массив.
- Бросок
null
, как если бы это было значение Throwable
.
Приложения должны генерировать экземпляры этого класса, чтобы указать на другое незаконное использование объекта null
.
То, что FacesContext#getCurrentInstance()
возвращает null
, в свою очередь, может быть вызвано, только если эта строка кода не была выполнена внутри контекста JSF, т.е. когда код не выполняется во время HTTP-запроса, который обслуживается FacesServlet
, который отвечает за создание FacesContext
как ThreadLocal
. Например, внутри простого сервлета, фильтра сервлета или слушателя сервлета или любого другого кода, который не выполняется во время HTTP-запроса, выполняющего FacesServlet
.
Способ ее правильного решения зависит от функциональных требований, которые не ясны из вопроса. Как правило, вы должны либо убедиться, что HTTP-запрос проходит через FacesServlet
, либо получить доступ к информации, которую вы ищете, альтернативными средствами, более подходящими для контекста, в котором выполняется код.