#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
. Какой я глупый! = D5. Добро пожаловать! Я сделал то же самое один раз ^^
Ответ №1:
Будьте внимательны, чтобы импортировать правильный пакет для вашей @SessionScoped
аннотации.
Комментарии:
1. Эй, как вы пришли к этому ответу? ^. ^
2. У меня была аналогичная проблема из-за того, что я не импортировал правильные аннотации области. И я спросил в комментариях ^^