grails web app在生产中运行的问题:“没有这样的属性:为类保存:JsecRole”

时间:2009-06-18 10:53:29

标签: sql-server grails web-applications

我有一个grails 1.1网络应用程序在开发中运行良好,但是当我尝试在生产中运行它时 一个sqlserver数据库,它以一种奇怪的方式崩溃。

我的datasource.groovy的相关部分如下:

environments {
    development {
        dataSource {
            dbCreate = "create-drop" // one of 'create', 'create-drop','update'
            url = "jdbc:hsqldb:mem:devDB"
        }
    }
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:hsqldb:mem:testDb"
        }
    }
    production {

        dataSource {
            dbCreate = "update"
            driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
            endUsername = "sa"
            password = "pw4db"
            url = "jdbc:sqlserver://localhost:1433;databaseName=ReleasePlanner;selectMethod=cursor"       

我收到的错误消息是:

Message: No such property: save for class: JsecRole
Caused by: groovy.lang.MissingPropertyException: No such property: save for class: JsecRole
Class: ProjectController
At Line: [28]
Code Snippet:
27: println "###about to create project roles"
28: userManagerService.createProjectRoles(project)
29: userManagerService.addUserToProject(session.user.id.toString(), project, 'owner')       
        }
    }
}

堆栈跟踪如下:

org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingPropertyException: No such property: save for class: JsecRole

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

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

Caused by: groovy.lang.MissingPropertyException: No such property: save for class: JsecRole

    at UserManagerService.createProjectRoles(UserManagerService.groovy:9)

    at UserManagerService$$FastClassByCGLIB$$6fa73713.invoke(<generated>)

    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)

    at UserManagerService$$EnhancerByCGLIB$$fcf60984.createProjectRoles(<generated>)

    at UserManagerService$createProjectRoles.call(Unknown Source)

    at ProjectController$_closure4.doCall(ProjectController.groovy:28)

    at ProjectController$_closure4.doCall(ProjectController.groovy)

    ... 2 more

感谢任何帮助。

由于 萨拉

2 个答案:

答案 0 :(得分:0)

我通过删除数据库和创建新数据库来解决问题。我认为当我更改域对象时,我的数据库中的某些字段未正确映射。这个错误并没有真正指向我这个方向!

萨拉

答案 1 :(得分:0)

Grails邮件列表中讨论了in this thread这个问题。它应该在Grails 1.2中修复。早期版本的Grails的解决方法是将以下内容添加到Bootstrap.groovy

JsecRole.get(-1)