@ Внедрение ресурсов не происходит в JAX-RS - PullRequest
1 голос
/ 19 марта 2019

Когда @ApplicationScoped не указано в ресурсе JAX-RS, в строке ниже @Resource инъекция для ManagedExecutorService не происходит, и я обнаружил NullPointerException.

Но когда я добавляю @ApplicationScoped вместе с @Path я вижу, что ManagedExecutorService внедрение ресурса произошло правильно.

Пожалуйста, помогите выяснить разницу между ресурсом JAX-RS, когда используется только @Path("/uri") и когда @Path("/uri")используется вместе с @ApplicationScoped / @RequestScoped.

IDE и сервером являются Netbeans и Glassfish 5 соответственно.

Ответы [ 2 ]

2 голосов
/ 21 марта 2019

Жизненным циклом экземпляра класса ресурсов управляет либо CDI, либо JAX-RS. Когда вы добавляете @ApplicationScoped в класс ресурсов, он становится управляемым CDI. Вот в чем разница. Если он не управляется CDI, вы не можете ввести CDI @Resource.

0 голосов
/ 20 марта 2019

Ресурс может быть введен только для класса, управляемого контейнером.

...