Ошибка Java: WELD-000072 Управляемый bean, объявляющий пассивную область, должен обладать пассивацией
Я написал простую программу в Java-формах, но получаю следующую ошибку:
WELD-000072 Управляемый bean, объявляющий пассивирующую область, должен обладать пассивацией. Bean: Управляемый bean [класс BeanPakage.DemoBeans] с квалификаторами [@Any @Default @Named]
может ли кто-нибудь сказать мне, откуда эта ошибка?
мой код:
package BeanPakage;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named("DemoBeans")
@SessionScoped
public class DemoBeans
{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Ответы
Ответ 1
Вы можете сделать свою пассивацию bean доступной путем реализации интерфейса Serializable:
public class DemoBean implements Serializable { ... }
Обратите внимание, что существует больше требований к возможности пассивации. Для получения дополнительной информации обратитесь к документации Weld.
Ответ 2
Ошибка может сохраниться, даже если CDI bean является сериализуемым:
WELD-000072 Managed bean declaring a passivating scope must be passivation capable
Пример класса:
@Named
@ConversationScoped
public class TransactionMatchController implements Serializable {
...
}
Удостоверьтесь, что все @Interceptors также можно сглаживать:
@Interceptor
@Transactional
public class TransactionInterceptor implements Serializable {
...
}
Ответ 3
Сделать DemoBeans
сериализованным
@Named("DemoBeans")
@SessionScoped
public class DemoBeans implements Serializable
{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Ответ 4
Он должен быть сериализуемым.
См. этот ответ.
https://community.jboss.org/thread/179828
Бест,
Андерс
Ответ 5
Вы также можете активировать поведение пассивации вашего bean с помощью аннотации:
@Stateful (passivationCapable = истина)
В этом случае вам не нужно реализовывать интерфейс Serializable.
С уважением.
Jorge
Ответ 6
Проверить импорт
(несколько раз netbeans использовали другие из других библиотек)
Пример. import javax.faces.view.ViewScoped; измените его на импорт javax.faces.bean.ViewScoped;