Как EJB-контейнер отличает одного клиента от другого в случае @Stateful - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь понять, что можно сделать с @ Stateful bean-компонентами, учитывая @ SessionScoped CDI-компонентов. Я создал этот ресурс JAX-RS:

@Path("ping")
public class PingResource {

    @Inject
    private StatelessCounter statelessCounter;

    @Inject
    private StatefulCounter statefulCounter;

    @Inject
    private SingletonCounter singletonCounter;

    private long jaxrsCounter;

    @GET
    @Path("/counter")
    public String incrementAndGetCounter() {
        statelessCounter.incrementCounter();
        statefulCounter.incrementCounter();
        singletonCounter.incrementCounter();
        jaxrsCounter++;

        return statelessCounter.getCounter() + " " + statefulCounter.getCounter() + " " + singletonCounter.getCounter() + " " + jaxrsCounter;
    }
}

Просто чтобы понять поведение bean-компонента с состоянием. Но каждый раз, когда я звоню на /counter конечную точку, я всегда получаю fre sh statefulCounter. Я просто хочу знать, по каким критериям контейнер EJB возвращает тот же объект с состоянием, который использовался ранее; так как это состояние, должен быть способ получить тот же старый объект.

...