Ошибка 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;
    }

}

Ответ 5

Вы также можете активировать поведение пассивации вашего bean с помощью аннотации:

@Stateful (passivationCapable = истина)

В этом случае вам не нужно реализовывать интерфейс Serializable.

С уважением. Jorge

Ответ 6

Проверить импорт

(несколько раз netbeans использовали другие из других библиотек)

Пример. import javax.faces.view.ViewScoped; измените его на импорт javax.faces.bean.ViewScoped;