1
我有一個無狀態的EJB,我已經通過註釋@WebService爲它定義了一個Web服務端點(如下所示)。我使用HTTP會話和WebServiceContext管理身份驗證和會話。代碼工作正常。如何更改無狀態EJB的Web服務端點的http會話超時?
@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;
}
}
我需要做的是更改EJB Web服務端點的http會話超時。我嘗試了所有的東西,但是因爲程序在glassfish上部署爲ejb-jar,所以沒有web.xml。如何更改EJB Web服務端點的http會話超時? P.S.我不能使用有狀態EJB,因爲我要使用Web服務端點。
如何將它打包爲WAR? – kfis 2013-04-29 07:42:53
包裝結構是EAR,它包含一個用於其他目的的WAR文件。我在WAR中更改了會話超時,但並不適用於EJB – Milad 2013-04-29 08:16:16
是否真的創建了會話? – 2013-04-29 08:32:56