Я не могу найти правильный способ для инъекции объектов в ресурс джерси.Индивидуальные инъекции в черном
Я определил этот провайдер:
@Provider
public class UpsellPaymentProvider implements InjectableProvider<Context, UpsellPaymentService>{
private final Log log = LogFactory.getLog(getClass());
public UpsellPaymentProvider(){
log.info("Provider is instanced");
}
@Override
public ComponentScope getScope() {
return ComponentScope.PerRequest;
}
@Override
public Injectable<UpsellPaymentService> getInjectable(ComponentContext paramComponentContext,
Context paramA, UpsellPaymentService paramC) {
log.info("Injecting UpsellPaymentService");
return new AbstractHttpContextInjectable<UpsellPaymentService>() {
@Override
public UpsellPaymentService getValue(HttpContext arg0) {
return new UpsellPaymentService();
}
};
}
}
Как вы можете видеть в следующем коде, у меня есть upsellPaymentService, которые должны быть предоставлены UpsellPaymentProvider:
@Path("/rest/payment/upsell")
public class UpsellResource {
private final Log log = LogFactory.getLog(getClass());
@Context // Inject here
private UpsellPaymentService upsellPaymentService;
@POST
@Path("/first")
@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response first(@InjectParam UpsellDto dto, Form allParams){
// code here
}
}
Когда я запустить тест, Я вижу, что поставщик и ресурс обнаружены, но кажется, что поставщик не вводит:
ИНФО: Сканирование для корневых ресурсов и провайдеров классов в пакетах: example.ws.resources example.ws.providers
11-октября-2013 13:19:34 com.sun.jersey.api.core.ScanningResourceConfig logClasses INFO : классы корневых ресурсов найдено: класс example.ws.resources.UpsellResource
11-октября-2013 13:19:34 com.sun.jersey.api.core.ScanningResourceConfig logClasses INFO: классы Provider найдено: класс example.ws.providers.UpsellPaymentProvider
... Не важно журналы ...
2013-10-11 13: 19:. 35092 INFO example.ws.providers.UpsellPaymentProvider (29) ---> провайдер инстанс
11-окт-2013 13:19:36 ком. sun.jersey.spi.inject.Errors processErrorMessages
МОГИЛА: следующие ошибки и предупреждения были обнаружены с ресурса и/или классов поставщика:
СИЛЬНЫЙ: Отсутствует зависимость для поля: частный example.ws. services.UpsellPaymentService example.ws.resources.UpsellResource.upsellPayme ntService
Любая идея для решения этой проблемы ?, спасибо.