1

我得到错误

org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in scheduled task.

java.lang.SecurityException: No security context bound to the current thread

使用核心模块上的计划任务在应用程序启动时执行一次任务:

<task:scheduled-tasks scheduler="scheduler">
    <task:scheduled ref="app_OlapService" method="initialize" fixed-rate="9223372036854775807"/>
</task:scheduled-tasks>

我已经在注入的 Authentication 实例上尝试了 @Authenticated 注释和 authentication.begin() 。

它看起来像一个由调度单独触发的错误,我也有一个空方法体的相同错误

考虑到我需要使用事务并且@PostConstruct AppContext.Listener 不允许我使用,我也对替代方法持开放态度。

4

1 回答 1

1

也许您正在调用服务的方法。拦截此类调用并检查是否存在有效的用户会话,因此它在调用时应该已经存在。当从客户端或已验证的中间件代码调用服务时,它会起作用。

在您的情况下,我建议将逻辑从服务中提取到托管 bean,并从服务和调度程序中调用它。

至于AppContext.Listener,在该applicationStarted()方法中,您可以做任何您想做的事情,包括程序化事务管理。

于 2017-06-13T12:08:03.613 回答