Я хочу иметь возможность сделать что-то вроде этого:
@GET
@Path("test")
public Response someMethod(@Context MyCustomContext myCustomContext) {
...
}
Я нашел этот старый пост о переполнении стека, в котором описаны различные методы для этого: Использование @Context, @Provider и ContextResolver в JAX-RS. Я реализовал лучший ответ (который не зависит от реализации) и заставил его работать, но это не совсем то, что я хочу. Вместо этого это выглядело так:
@GET
@Path("test")
public Response someMethod(@Context Providers providers) {
ContextResolver<MyCustomContext> p = providers.getContextResolver(MyCustomContext.class, MediaType.WILDCARD_TYPE);
MyCustomContext myCustomContext = p.getContext(null);
...
}
На этом посту были и другие решения, но они зависели от реализации. Я заметил в документации quarkus, что есть раздел о пользовательских контекстах, который можно найти здесь: https://quarkus.io/guides/cdi-reference#synthetic-beans, но это относится только к расширениям. У кого-нибудь есть идеи, как это сделать в проекте quarkus?
ResteasyContext
. Итак, что я сделал, так это поместилResteasyContext.pushContext(User.class, currentUser);
в фильтр jaxrs, что позволило мне сделать@Context User currentUser
. - person jsolum   schedule 15.06.2019