Передать значение из класса действий Java в ejb? - PullRequest
1 голос
/ 25 ноября 2010

Я разработал веб-приложение.Я помещаю идентификатор сессии в хеш-таблицу.Я хочу использовать эту хэш-таблицу в EJB.Значит, я хочу использовать этот сеанс входа в систему в ejb.

Возможно ли это?Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 25 ноября 2010

Учетные данные безопасности автоматически передаются из сервлета в EJB.Если ваш пользователь прошел аутентификацию в веб-контейнере, вам не нужно выполнять какую-либо работу.

В сессионном компоненте получите EjbContext, как описано текст ссылки

 @Resource
 private SessionContext sctx;

, а затем вызвать методы, такие как

 sctx.getCallerPrincipal();  
0 голосов
/ 25 ноября 2010

Это не невозможно, но вы не должны этого делать. Получите все необходимое из HttpSession и отправьте его в EJB в качестве параметров метода. Например:

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

Итак - передайте значения, которые вам нужны как параметры, методам через цепочечные слои вашего приложения.

...