У меня нет EJB без состояния, и я определил конечную точку веб-службы для него аннотацией @WebService (как видно ниже). Я управляю аутентификацией и сеансом, используя сеанс HTTP и используя WebServiceContext. Код работает нормально.Как я могу изменить тайм-аут сеанса http для конечной точки веб-службы для безгосударственного EJB?
@Stateless
@WebService
public class UserManager implements UserManagerRemote{
@Resource
private WebServiceContext webServiceContext;
@Override @WebMethod
public boolean login(String username, String password){
if(!checkUser(username, password))
return false;
HttpSession session = HttpServletRequest)webServiceContext.getMessageContext().
get(MessageContext.SERVLET_REQUEST)).getSession();
session.setAttribute("username", username);
return true;
}
@Override @WebMethod
public int doSomthing(){
HttpSession session = ((HttpServletRequest)webServiceContext.getMessageContext().
get(MessageContext.SERVLET_REQUEST)).getSession();
if(session == null)
return -1;
//do the thing and return the result
return 1;
}
}
Что мне нужно сделать, это изменить время ожидания сеанса http для конечной точки веб-службы EJB. Я пробовал все, но поскольку программа развертывается как ejb-jar на стеклянной рыбке, нет web.xml. Как изменить тайм-аут сеанса http для конечной точки веб-службы EJB? P.S. Я не могу использовать Stateful EJB, потому что я собираюсь использовать конечную точку веб-сервиса.
Как насчет упаковки его как ВОЙНЫ? – kfis
Структура упаковки EAR, она содержит файл WAR для другой цели. Я изменил тайм-аут сеанса в WAR, но не работал для EJB – Milad
Есть ли вообще сеанс? –