Я пытаюсь протестировать код авторизации аутентификации jax-rs, который включает фильтры, реализующие интерфейс ContainerRequestFilter
с аннотациями @Provider
, @Dependent
и @Priority
. В моем тесте я создаю ResourceConfig
с моими классами ресурсов, но я не могу зарегистрировать фильтры. Когда я пытаюсь зарегистрироваться, у меня есть исключение ниже:
MultiException stack 1 of 2
java.lang.IllegalStateException: Could not find an active context for javax.enterprise.context.Dependent
at org.jvnet.hk2.internal.ServiceLocatorImpl._resolveContext(ServiceLocatorImpl.java:2212)
at org.jvnet.hk2.internal.ServiceLocatorImpl.access$000(ServiceLocatorImpl.java:106)
.
.
.
MultiException stack 2 of 2
java.lang.IllegalStateException: While attempting to create a service for SystemDescriptor(
implementation=com.transport.webservices.security.api.filter.AuthorizationFilter
contracts={javax.ws.rs.container.ContainerRequestFilter}
scope=javax.enterprise.context.Dependent
qualifiers={org.glassfish.jersey.internal.inject.Custom}
descriptorType=CLASS
descriptorVisibility=NORMAL
metadata=
rank=2000
loader=null
proxiable=null
proxyForSameScope=null
analysisName=null
id=167
locatorId=0
identityHashCode=885002305
reified=true) in scope javax.enterprise.context.Dependent an error occured while locating the context
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2086)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
.
.
.
.
И ниже, как я пытаюсь зарегистрировать фильтры:
ResourceConfig resourceConfig = new ResourceConfig(
AuthenticationResource.class, SomeOtherResource.class
)
.register(AuthenticationFilter.class)
.register(AuthorizationFilter.class);