как зарегистрировать фильтры для каркаса тестирования джерси - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь протестировать код авторизации аутентификации 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);
...