У меня проблема с инъекцией в Java, так как я хотел бы добавить интерфейс RemoteStatisticService, но в этом случае он возвращает значение null, в результате чего возникает ошибка NullPointerException. Я попытался следовать this с помощью метода init() и @PostConstruct, но все равно дает мне ту же ошибку.Injection CDI интерфейса возвращает NullPointerException
Вот код класса MeasurementAspectService:
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import *.dto.MeasureDownloadDto;
import *.dto.MeasureUploadDto;
import *.rs.RemoteStatisticService;
public class MeasurementAspectService {
private @Inject RemoteStatisticService remoteStatisticService;
public void storeUploadDto(MeasureUploadDto measureUploadDto) {
remoteStatisticService.postUploadStatistic(measureUploadDto);
}
public void storeDownloadDto(MeasureDownloadDto measureDownloadDto) {
remoteStatisticService.postDownloadStatistic(measureDownloadDto);
}
@PostConstruct
public void init() {
}
}
Вот код класса интерфейса RemoteStatisticService
import static *.util.RemoteServiceUtil.PRIV;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import *.dto.MeasureDownloadDto;
import *.dto.MeasureUploadDto;
@Path(PRIV + "stats")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public interface RemoteStatisticService {
@POST
@Path("upload")
void postUploadStatistic(MeasureUploadDto mud);
@POST
@Path("download")
void postDownloadStatistic(MeasureDownloadDto mdd);
}
Любая помощь приветствуется. Спасибо
Для того, чтобы иметь право на инъекцию, они должны быть отмечены как «@ Именованные» компоненты для вашего поставщика CDI для обработки, например. 'Weld' – PDStat
Где я должен положить @Named beans в этом случае? Я использую Maven и все еще новичок с CDI –
На уровне класса, например. '@Named public class MeasurementAspectService' – PDStat