ManagedBean депортируется.Использование CDI Bean не работает - PullRequest
0 голосов
/ 20 февраля 2019

Моя IDE указывает ManagedBean как удаленный.Я прочитал об этом и решил заменить мои аннотации javax.faces.bean.ManagedBean на javax.inject.Named.Но после замены мой CDI Bean не распознается (PostConstruct не вызывается):

//@ManagedBean(name = "carlistbean")
@Named(value = "carlistbean")
@SessionScoped
public class CarListBean implements Serializable {

    @PostConstruct
    public void init(){
        cars = carRepository.getAllCars();
    }

    @Inject
    private CarRepository carRepository;

Я использую Bean в качестве бэкенда для моей JSF-страницы:

<h:dataTable value = "#{carlistbean.cars}" var = "car"

Я нахожусь наJSF 2.2.18

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.2.18</version>
    </dependency>

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.18</version>
    </dependency>

Может ли кто-нибудь мне помочь / дать подсказку?

ОБНОВЛЕНИЕ

Я используюJ2ee 8

my beans.xml в WEB-INF выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
       bean-discovery-mode="all">
</beans>
...