Никакие бобы не подходят для инъекции в точку инъекции [JSR-365 5.2.2]

Большую часть времени я использую аннотацию @Inject в микросервисах на основе MicroProfile. Я получаю в качестве предупреждения «Нет bean-компонентов, пригодных для внедрения в точку внедрения» [JSR-365 5.2.2]. В чем причина этого предупреждения и что можно сделать, чтобы его преодолеть? Скажем, например. Я написал код для инъекции файла свойств:

@Path("/configProperty")
@Singleton
public class ConfigPropertyResource{
    
    @Inject
    @ConfigProperty(name = "username")
    private String username;

    @GET
    @Path("/mp-config")
    @Produces(MediaType.APPLICATION_JSON)
    public Response mpConfig() {
        Map<String, Object> configProperties = new HashMap<>();
        return Response.ok(configProperties).build();
    }
}

Теперь в аннотации @Inject отображается предупреждающий знак с предложением: ни один bean-компонент не подходит для внедрения в точку внедрения [JSR-365 5.2.2].

Я использую Microprofile версии 3.3 с wildfly 19.1 в качестве среды выполнения.

Примечание. Добавив @SuppressWarnings(cdi-ambiguous-dependency), он исчез, но это не имело смысла.


person SHUBHAM AGRAWAL    schedule 05.08.2020    source источник


Ответы (1)


Я предполагаю, что это проблема с используемой вами IDE. Поскольку Eclipse MicroProfile Config использует хорошо известные аннотации CDI, такие как @Inject, ваша среда IDE пытается предоставить вам поддержку для проверки наличия доступного для внедрения компонента CDI. Эта поддержка CDI в IDE может не распознавать, что вы на самом деле используете Eclipse MicroProfile, и, следовательно, классическая поддержка CDI предполагает, что вы хотите внедрить другой bean-компонент, но не свойство.

Если вы не сталкиваетесь с какими-либо проблемами во время выполнения и жалуется только ваша IDE, либо обновите IDE (если она поддерживает MicroProfile Config), либо проигнорируйте/подавите это предупреждение.

Я использую IntelliJ IDEA 2020.2 и не сталкиваюсь с такими проблемами при разработке приложений с Eclipse MicroProfile Config.

person rieckpil    schedule 09.08.2020