Управляемый компонент WELD-000072, объявляющий область пассивации, должен быть способен к пассивации
я написал простую программу в java web forms, но я получаю следующую ошибку:
управляемый компонент WELD-000072, объявляющий область пассивации, должен быть способен к пассивации. Bean: управляемый Bean [class
BeanPakage.DemoBeans
] квалификаторы [@Any
@Default
@Named
]
может ли кто-нибудь сказать мне, откуда эта ошибка?
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;
}
}
7 ответов:
вы можете сделать свою пассивацию бобов способной, реализовав сериализуемый интерфейс:
public class DemoBean implements Serializable { ... }
обратите внимание, что есть больше требований для того, чтобы быть пассивации способны. Обратитесь к сварному документации для получения дополнительной информации.
ошибка может остаться, даже если компонент CDI сериализуем:
WELD-000072 Managed bean declaring a passivating scope must be passivation capable
пример класса:
@Named @ConversationScoped public class TransactionMatchController implements Serializable { ... }
убедитесь, что все @Interceptors также являются seializable:
@Interceptor @Transactional public class TransactionInterceptor implements Serializable { ... }
Он должен быть сериализуемым.
посмотреть этот ответ.
https://community.jboss.org/thread/179828
лучшие, Андерс
сделать
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; } }
вы также можете активировать пассивацию поведения вашего боба с аннотацией:
@Stateful(passivationCapable=true)
в этом случае вы не должны реализовать интерфейс Serializable.
с уважением. Хорхе
проверка импорта
(несколько раз netbeans использовал другие из других библиотек)
пример. импорт пакета javax.сталкиваться.вид.ViewScoped; измените его путем импорта javax.сталкиваться.фасоль.ViewScoped;
вызвано: org.с JBoss.сварной шов.исключения.DeploymentException: WELD-000072: Bean, объявляющий пассивирующую область, должен быть способен к пассивации. Bean: управляемый Bean [класс com.- Маркос.контроллер.PersonaBean] с квалификаторами [@Default @Named @Any]
Я решил его, видимо CDI, я не узнал Боб, я просто сделал его более явным
@Named @ViewScoped public class PersonaBean implements Serializable { @Inject private IPersonaService service; public void registrar() { try { service.registrar(null); }catch (Exception e) { e.printStackTrace(); } } }
решение для меня:
@Named ("PersonaBean") @ViewScoped public class PersonaBean implements Serializable { @Inject private IPersonaService service; public void registrar() { try { service.registrar(null); }catch (Exception e) { e.printStackTrace(); } } }