Target Unreachable, идентификатор, разрешенный к null в JSF 2.2

У меня проблема с JSF 2.2 и CDI, мой менеджер не решен и появляется эта ошибка

"value =" # {userBean.user.name} ": Target Unreachable, идентификатор userBean разрешен для null"

Это мой менеджер bean.

@ManagedBean
@RequestScoped
public class UserBean implements Serializable {
    private User user;

    public void setUser(user) {
        this.user = user;
    }
    ...
}

Мое мнение:

<h:form id="login-form">
    <h:outputText value="User"/>
    <h:inputText value="#{userBean.user.name}" id="username"/>

    <h:outputText value="Senha"/>
    <h:inputSecret value="#{userBean.user.password}" id="pasword"/>

    <h:commandButton id="button" value="Login" action="#{userBean.login}"/>

    <h:messages />
</h:form>

Ответы

Ответ 1

Я решил эту проблему.

Моя версия Java была 1.6, и я обнаружил, что использовал 1.7 с CDI, но после этого я изменил версию Java на 1.7 и импортировал пакет javax.faces.bean.ManagedBean и все сработало.

Спасибо @PM77-1


Ответ 2

Я хочу поделиться своим опытом с этим Исключением. Приложение JSF 2.2 отлично работало с WildFly 8.0, но однажды, когда я запустил сервер, я получил исключение "Целевое невосстанавливаемое" . На самом деле, не было никаких проблем с аннотациями или тегами JSF.

Единственное, что мне нужно было сделать, - это очистка проекта. После этой операции мое приложение снова работает нормально.

Я надеюсь, что это поможет кому-то!

Ответ 3

  • Вам нужно

    @ManagedBean(name="userBean")

  • Убедитесь, что у вас есть метод getUser().

  • Тип метода setUser() должен быть void.

  • Убедитесь, что класс User имеет собственные setters и getters.