java - 无法初始化代理 - 无 session

标签 java hibernate grails groovy

嗨,

我使用的是 Grails 1.2.1,当我运行我的应用程序并在没有任何人使用这些应用程序的情况下保留它时,我总是收到此消息。

org.hibernate.LazyInitializationException: could not initialize proxy - no Session

at H__project_ilinkdev_grails_app_views_layouts_main_gsp$_run_closure2.doCall(H__project_ilinkdev_grails_app_views_layouts_main_gsp:220)

at H__project_ilinkdev_grails_app_views_layouts_main_gsp$_run_closure2.doCall(H__project_ilinkdev_grails_app_views_layouts_main_gsp)

at H__project_ilinkdev_grails_app_views_layouts_main_gsp.run(H__project_ilinkdev_grails_app_views_layouts_main_gsp:259)

at org.jsecurity.web.servlet.JSecurityFilter.doFilterInternal(JSecurityFilter.java:382)

at org.jsecurity.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:180)

at java.lang.Thread.run(Thread.java:619)

在我看来,我已经加载了一个类菜单:

/**

菜单域 规则:一个 Controller 一个菜单 * */ 类菜单{ String 菜单名称 = ""; 字符串菜单 Controller =“”; 字符串菜单操作 = ""; 整数菜单顺序 = 1; 字符串菜单类 = '';//html 类 整数 myid = 0 ;

boolean isUser = false; // is this user menu (user only menu) 
boolean isAdmin = false; // is this administrator menu 
boolean isHorizontal =false; // is this horizontal or vertical (if false)
String menuType='all'; // pia, dam, da, br, all  
Menu parentMenu;

static hasMany = [childMenu:Menu] ;
static belongsTo = [parentMenu:Menu];

static constraints = {
    menuName(blank:false, nullable:false);
    menuOrder(blank:false, nullable:false);
    menuController(blank:true,nullable:false); // blank/nullable if there is no controller
    menuAction(blank:true,nullable:false); // blank/nullable if there is no controller
    menuClass(blank:true,nullable:false); // css class ... blank : using default menu
    parentMenu(blank:true, nullable:true);
    childMenu(blank:true, nullable:true);
}

String toString(){
    "${menuName}";
}

}

以及layout/main.gsp内部 我有这个代码:

                <%
            def currMenu = Menu.findByMenuController(params.controller);
            %>
            <g:if test="${currMenu}">
            <g:if test="${currMenu.isHorizontal}">
            <g:each in="${Menu.findAllByParentMenu(currMenu,[sort:'menuOrder',order:'asc'])}" status='x' var='submenu'>
            <li class='${submenu.menuClass} <% 
            if(submenu.menuController == params.controller){
                // dont hi-light on sign out 
                if(params.controller.equals("auth")){
                }else{
                    out << "selected";
                }
            }
            %>'> 
                    <g:if test="${!submenu.menuController.equals('')}">
                        <g:link controller='${submenu?.menuController}' action='${submenu?.menuAction}'>
                            ${submenu?.menuName} 
                        </g:link>
                    </g:if>
                    <g:else>
                            ${submenu?.menuName} 
                    </g:else>
                </li>
            </g:each>
            </g:if>
            <g:else>
            <%
            // get who is the parent 
            def parentMenu = currMenu.parentMenu ;
            %> 
            <g:each in="${Menu.findAllByParentMenu(parentMenu,[sort:'menuOrder',order:'asc'])}" status='x' var='submenu'>
            <li class='${submenu.menuClass} <% 
            if(submenu.menuController == params.controller){
                // dont hi-light on sign out 
                if(params.controller.equals("auth")){
                }else{
                    out << "selected";
                }
            }
            %>'> 
                <g:if test="${!submenu.menuController.equals('')}">
                    <g:link controller='${submenu?.menuController}' action='${submenu?.menuAction}'>
                        ${submenu?.menuName} 
                    </g:link>
                </g:if>
                <g:else>
                        ${submenu?.menuName} 
                </g:else>
            </li>
            </g:each>
            </g:else>
            </g:if>
        </ul>
        </g:if>

如何修复这个错误?我可以重新启动 grails 并且它可以正常工作..但我只是很好奇如何解决这个问题

最佳答案

当应用程序每隔几个小时不活动后就会中断时,您的错误似乎与过时的连接有关。

参见http://sacharya.com/grails-dbcp-stale-connections/有关此问题的描述和解决方案。

法比安。

关于java - 无法初始化代理 - 无 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2817560/

相关文章:

java - Kubernetes,简单的 SpringBoot 应用程序 OOMKilled

spring - 无法解决 Spring 安全性

grails - 如何构造Grails Services,使父类(super class)方法是非事务性的而子类方法是事务性的?

regex - 正则表达式匹配&lt;title&gt; </title>,包括任意位置的换行符

方法内的Java空 block 与其他 block 不同?

java - 在一个线程的 JDialog 中显示一个不确定的进度条,并同时在另一个线程中运行一个任务

java - 负向查找未按预期工作

java - JPA+ Spring : Mapping a foreign key column to a ID based on the value received before persisting the entity

java - 性能和 hibernate

java - XML 文档结构必须在同一实体内开始和结束