JSF 2.0: почему я получил это исключение управляемого компонента Inject

#java #exception #jsf-2 #scope

#java #исключение #jsf-2 #область

Вопрос:

У меня есть следующие 2 ManagedBean:

 @ManagedBean
@ViewScoped
public class MakeReservation {
    ...
    @ManagedProperty(value="#{cartManagedBean}")
    private CartManagedBean cartSession;
    ...
}

@ManagedBean
@SessionScoped
public class CartManagedBean {
    ...
}
 

Когда я пытаюсь перейти к MakeReservation.xhtml, я увидел следующее исключение:

 SEVERE: JSF will be unable to create managed bean makeReservation when it is requested.  The following problems where found:
     - The scope of the object referenced by expression #{cartManagedBean}, request, is shorter than the referring managed beans (makeReservation) scope of view
 

Очевидно, что область действия cartManagedBean SessionScope . Я понятия не имею, почему исключение утверждало, что у моего компонента есть RequestScope . Я несколько раз пытался очистить, собрать и запустить проект, но это не помогло.

Я был бы очень признателен, если бы кто-нибудь мог показать мне, где я ошибся.

С наилучшими пожеланиями,

Джеймс Тран

Комментарии:

1. В каком контейнере вы это развернули? Может ли контейнер пытаться запустить более старую версию? Может быть, взорвавшаяся война?

2. Я использую GlassFish 3, если это то, о чем вы просите.

3. Не могли бы вы показать пакеты аннотаций, которые вы используете, пожалуйста.

4. @KayKay: БОЖЕ мой! Ты мой ангел-мужчина. Я импортировал javax.enterprise.context.SessionScoped вместо javax.faces.bean.SessionScoped . Какой я глупый! = D

5. Добро пожаловать! Я сделал то же самое один раз ^^

Ответ №1:

Будьте внимательны, чтобы импортировать правильный пакет для вашей @SessionScoped аннотации.

Комментарии:

1. Эй, как вы пришли к этому ответу? ^. ^

2. У меня была аналогичная проблема из-за того, что я не импортировал правильные аннотации области. И я спросил в комментариях ^^