Ни один компонент не подходит для инъекции в точку инъекции [JSR-365 5.2.2] - PullRequest
0 голосов
/ 05 августа 2020

В большинстве случаев я использую аннотацию @Inject в микросервисах на основе MicroProfile и получаю предупреждение «Ни один компонент не подходит для инъекции в точку инъекции [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"), он исчез, но этого не произошло ' В этом нет смысла.

1 Ответ

0 голосов
/ 09 августа 2020

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

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

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

...