У меня есть веб-приложение, которое переносится с Джерси на RestEasy.Приложение использует Guice для CDI.
Приложение использует провайдер Guice для внедрения UriInfo.В версии на Джерси этот код выглядел так:
public static class JerseyIntegrationModule extends AbstractModule {
@Override protected void configure() {
bind(WebApplication.class).to(WebApplicationImpl.class).in(Scopes.SINGLETON);
}
@Provides @RequestScoped
public HttpContext getHttpContext(WebApplication webapp) {
return webapp.getThreadLocalHttpContext();
}
@Provides @RequestScoped
public UriInfo getUriInfo(HttpContext httpContext) {
return httpContext.getUriInfo();
}
}
Все эти классы WebApplication
, HttpContext
и т. Д. Относятся к Джерси.Вопрос в том, как обеспечить что-то подобное в RestEasy.
Одной из попыток была эта
public class MyServlet extends ServletModule {
@Provides @RequestScoped
public UriInfo getUriInfo(@Context UriInfo info) {
return info;
}
}
, но это приводит к переполнению стека в коде внедрения Guice.
Я знаю, что атрибут @Context должен позволять мне вводить UriInfo в RestEasy, но я не могу понять, использовать ли это в провайдере Guice.
Приложение будет развернуто в Wildfly 15.
Любая помощь очень ценится, поскольку это заставляет мою голову кружиться.