Управляемый компонент 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 67

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();
    }
  }
}