Я написал простую программу в веб-формах Java, но получаю следующую ошибку:
WELD-000072 Управляемый компонент, объявляющий пассивирующую область, должен поддерживать пассивацию. Бин: управляемый компонент [класс
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;
}
}
java
cdi
jboss-weld
Кристина
источник
источник
@Interceptors
для меня проблема с сериализацией !Он должен быть сериализуемым.
Смотрите этот ответ.
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; } }
источник
Вы также можете активировать пассивное поведение вашего bean-компонента с помощью аннотации:
@Stateful (passivationCapable = true)
В этом случае вам не нужно реализовывать интерфейс Serializable.
С уважением. Хорхе
источник
Проверить импорт
(иногда netbeans использовали другие из других библиотек)
Пример. import javax.faces.view.ViewScoped; измените его, импортируя javax.faces.bean.ViewScoped;
источник
javax.faces.bean.ViewScoped
в пользуjavax.faces.view.ViewScoped
. Означает ли это, что мне нужно просмотреть все bean-компоненты с областью видимости и сделать их сериализуемыми? Изjavax.faces.bean.ViewScoped
javadoc:@deprecated This has been replaced by {@code javax.faces.view.ViewScoped}. The functionality of this corresponding annotation is identical to this one, but it is implemented as a CDI custom scope.
Вызвано: org.jboss.weld.exceptions.DeploymentException: WELD-000072: Бин, объявляющий пассивирующую область, должен иметь возможность пассивации. Bean: управляемый компонент [класс com.marcos.controller.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(); } } }
источник