Это работает нормально, хотя для этого требуется два фильтра. Я читал об использовании HK2 и InjectionResolver, и мне было интересно, могу ли я использовать инъекцию для внедрения этого RestContext в мои ресурсы и другие фильтры (например, у меня есть фильтр, который создает SecurityContext из RestContext), но я не смог найти ответа. В общем, как мне внедрить объект для каждого запроса, который зависит от контекста запроса? Возможно ли это вообще? Есть ли более простой способ сделать это, например, используя @Context?
EDIT: Как уже отмечалось, я в основном пытаюсь внедрить в свои ресурсы собственный класс в соответствии с документацией. Однако, похоже, я не могу правильно зарегистрировать свой AbstractBinder, чтобы связать внедрение моего класса. Я получаю следующее:
Код: Выделить всё
org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at Injectee(requiredType=RestContext,parent=RestContextFilter,qualifiers={}),position=0,optional=false,self=false,unqualified=null,1435496015)
Код: Выделить всё
new ResourceConfig(allResources())
.packages(packagesToScan())
.registerInstances(new RestContextBinder());
Однако я теперь я получаю это:
Код: Выделить всё
A MultiException has 3 exceptions. They are:
1. java.lang.IllegalStateException: Not inside a request scope.
2. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of my.package.RestContextFilter errors were found
3. java.lang.IllegalStateException: Unable to perform operation: resolve on my.package.RestContextFilter
Подробнее здесь: https://stackoverflow.com/questions/218 ... ey-request
Мобильная версия