标签: java ejb schedule
我有一个带有预定方法的bean。该方法调用另一个EJB的refresh()方法,该方法上有@AroundInvoke拦截器。其中的拦截器调用sessionContext.getCallerPrincipal().getName()来查找调用用户并将该信息写入数据库。当登录用户通过Web界面调用相同的refresh()方法时,一切都很酷。但是,当调度程序调用该方法时,我会看到匿名'而不是数据库中的真实用户名。如何以编程方式将调度方法作为特定用户运行?
refresh()
sessionContext.getCallerPrincipal().getName()
答案 0 :(得分:0)
听起来像@RunAs注释的工作! This question有一个与调度程序一起使用的例子。