Невозможно внедрить запрос HttpServletRequest внутри потока в Wildfly 12.0 - PullRequest
1 голос
/ 08 июля 2019

В моем веб-приложении на Java с RESTful WebService я использовал Wildfly 8.2 со сваркой 2.2.6. Я внедряю объект HttpServletRequest в поток и считываю из него параметры. После обновления до Wildfly 12.0 со сваркой 3.0.3 использование экземпляра HttpServletRequest в потоке выдает следующую ошибку:

org.jboss.weld.contexts.ContextNotActiveException: WELD-001303: нет активных контекстов для типа области действия javax.enterprise.context.RequestScoped

Есть ли способ исправить эту проблему?

Я попытался обновить патч для сварки 3.0.4 для Wildfly 12, попробовал использовать AsyncContext. пробовал вводить как @context. Этот код отлично работает в Wildfly 12, он даже не работает в Wildfly 16.

@Path("test")
public class TestWildfly12 {

    @Inject
    private HttpServletRequest request1;

    @GET
    public Response testRequest() {

        request1.setAttribute("test", "test");
        ExecutorService executorService = Executors.newFixedThreadPool(1);
        executorService.execute(() -> {

            Object value = request1.getAttribute("test");
            System.out.println(value);
        });

        final Response response = Response.build().entity(true);
        response.setStatus(Status.OK.getStatusCode());

        return response;
    }
}

Я хочу, чтобы код получал данные из параметра запроса в потоке.

...