2010-11-25 21 views
1

我开发了一个web应用程序。我把会话ID放在哈希表中。我想在ejb中使用这个散列表。意思是我想在ejb中使用这个登录会话。将Java动作类的值传递给ejb?

可能吗?我怎样才能做到这一点?

+0

是它EJB 2,EJB 3.0或EJB 3.1? – Bozho 2010-11-25 18:00:51

回答

0

这不是不可能的,但你不能这样做。从HttpSession获取所需的所有内容,并将其作为方法参数发送给EJB。例如:

public void doGet(HttpServletRequest request, HttpServletResponse response) { 
    String foo = (String) request.getSession().getAttribute("foo"); 
    ejbService.doSomething(foo); 
} 

所以 - 通过应用程序的链层将所需的值作为参数传递给方法。

+0

为什么他不能使用安全上下文?应该不需要传递额外的参数。 – djna 2010-11-25 09:04:24

+0

首先感谢您的答案。 – water 2010-11-25 09:08:05

0

安全证书从Servlet自动传递到EJB。如果您的用户已经通过了Web容器的认证,那么您不需要做任何工作。

在会话bean描述link text

@Resource 
private SessionContext sctx; 

得到EJBContext的再调用的方法,如

sctx.getCallerPrincipal();