#java #java_ee
По идее, stateless бин не должен сохранять своё состояние (значения своих полей)
после завершения запроса. Например, вызов метода GetSum(13) каждый раз должен возвращать
"13".
import javax.ejb.*;
import javax.jws.*;
@Stateless
@WebService(endpointInterface = "ITestWebService")
public class TestWebService implements ITestWebService
{
private double sum = 0.0;
@Override
public double GetSum( double a )
{
this.sum += a;
return sum;
}
}
Но повторный вызов возвращает 13, 26, 39, ... Я неправильно понимаю stateless или
можно грешить на сервер приложений?
Ответы
Ответ 1
Stateless означает, что бин не держит состояние между сессиями. То есть надо "убить" бин чтобы увидеть что он не сохраняет свое внутреннее состояние.Ответ 2
У Stateful бина есть события @PrePassivate и @PostActivate для сериализации. Т.е. при нехватке ОЗУ этот бин может сохраняться на жесткий диск.
Комментариев нет:
Отправить комментарий