Я пытаюсь использовать Джерси с HK2. Мне нужно, чтобы связать действительно странный тип:HK2 TypeLiteral и подстановочные знаки
List<TransformationService<? extends Transformation, ? extends TransformationInfor>>
Так что я мое связующее определяется следующим образом:
resourceConfig.register(new AbstractBinder() {
@Override
protected void configure() {
List<TransformationService<? extends Transformation, ? extends TransformationInfo>> transformationServices = ... ;
bind(transformationServices)
.to(new TypeLiteral<List<TransformationService<? extends Transformation, ? extends TransformationInfo>>>() {});
// This class needs the list for its construction
bind(TransformationServiceImpl.class).to(TransformationService.class);
}
});
Когда я запускаю код, хотя я получаю исключение, что мой список не может быть введен (пакеты опущены):
[11/20/15 16:46:34] WARNING org.glassfish.jersey.internal.Errors logErrors : The following warnings have been detected: WARNING: Unknown HK2 failure detected:
MultiException stack 1 of 3
org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=List<TransformationService<? extends ...Transformation,? extends ...TransformationInfo>>,parent=TransformationServiceImpl,qualifiers={},position=3,optional=false,self=false,unqualified=null,334434299)
at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:74)
at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:214)
Любые советы о том, как вводить такой странный HK2?
Я думаю, что это отвечает здесь: http://stackoverflow.com/questions/23992714/how-to-inject-an-unbound-generic-type-in-hk2 –