java - 无法在 grails 中的非请求渲染操作中使用 session

标签 java session grails render gsp

我正在尝试在我的应用程序中发送邮件,当我尝试它时,它显示“您不能在非请求渲染操作中使用 session ” “这是完整的堆栈跟踪:

  1. java.lang.UnsupportedOperationException:您无法使用 session 在非请求渲染操作中

            at grails.gsp.PageRenderer$PageRenderRequest.getSession(PageRenderer.groovy:211)
    
    
            at D__workspace_mks_trunk_grails_app_views_promotion__offerTag_gsp.run(_offerTag.gsp:1)
    
    
            at D__workspace_mks_trunk_grails_app_views_general__courseNewsletter_course_gsp.run(_courseNewsletter.course.gsp:17)
    
    
            at D__workspace_mks_trunk_grails_app_views_general_courseNewsletter_gsp$_run_closure2.doCall(courseNewsletter.gsp:145)
    
    
            at D__workspace_mks_trunk_grails_app_views_general_courseNewsletter_gsp.run(courseNewsletter.gsp:200)
    
    
            at grails.gsp.PageRenderer.renderViewToWriter(PageRenderer.groovy:140)
    
    
            at grails.gsp.PageRenderer.render(PageRenderer.groovy:83)
    
    
            at EmailerService.sendEmails(EmailerService.groovy:78)
    
    
            at com.mks.email.NewsletterController$_closure9.doCall(NewsletterController.groovy:201)
    
    
            at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    
    
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    
    
            at java.lang.Thread.run(Thread.java:662)
    
    
          -->
    

还有 _offerTag 模板,我在那里使用 session 。在那里使用有什么问题吗?这也是几天后发生的事情。我检查了修订历史记录,该文件没有任何更改。

最佳答案

session 在服务器上创建和维护,以供来自特定用户代理(主要是 Web 浏览器)的后续请求。

因此,如果您不在用户请求的上下文中,例如在计划的作业处理中或在 Bootstrap.groovy 中,则无法使用 session 。

关于java - 无法在 grails 中的非请求渲染操作中使用 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23670453/

相关文章:

java - 如何从java调用更新SqlTable值的存储过程

java - 将 JButton 放置在图像上

php - 避免共享 PHP session

spring - 使用 Spring Security 避免 Grails 应用程序中的登录重定向

grails - hql中列表参数的正确格式是什么

Java get() 将初始化的 Hashtable 键更改为 Null

java - 如何在抽象类型的 java 中初始化 List,以便以后可以将子类型添加到列表中

java - 为什么 Hibernate 没有将 session 设置为可自动关闭?

ruby-on-rails - Rails - 为每个打开的选项卡/窗口存储唯一数据

java - Twitter bootstrap 版本 3.0.0 无法在 grails 中运行