为 Grails 2.4.4 配置 Auditlog 插件时找不到配置的 AuditLog 域错误

Posted

技术标签:

【中文标题】为 Grails 2.4.4 配置 Auditlog 插件时找不到配置的 AuditLog 域错误【英文标题】:Can't find configured AuditLog domain error while configuring Auditlog plugin for Grails 2.4.4 【发布时间】:2016-02-11 06:44:33 【问题描述】:

我正在尝试添加审核日志插件,但当服务器启动时,我收到错误无法找到配置的审核日志域并且服务器关闭。

[ERROR] 2015-11-10 15:22:04,561        org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener - Error initializing the application: Error creating bean with name 'org.codehaus.groovy.grails.plugins.orm.auditable.AuditLogEventController': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.codehaus.groovy.grails.plugins.orm.auditable.AuditLogEventController]: Constructor threw exception; nested exception is java.lang.IllegalStateException: Can't find configured AuditLog domain: groovy.util.ConfigObject@5bb5d623

org.springframework.beans.factory.BeanCreationException:创建名为“org.codehaus.groovy.grails.plugins.orm.auditable.AuditLogEventController”的bean时出错:bean实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean 类 [org.codehaus.groovy.grails.plugins.orm.auditable.AuditLogEventController]:构造函数抛出异常;嵌套异常是 java.lang.IllegalStateException:找不到配置的 AuditLog 域:groovy.util.ConfigObject@5bb5d623 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745) 引起:org.springframework.beans.BeanInstantiationException:无法实例化bean类[org.codehaus.groovy.grails.plugins.orm.auditable.AuditLogEventController]:构造函数抛出异常;嵌套异常是 java.lang.IllegalStateException:找不到配置的 AuditLog 域:groovy.util.ConfigObject@5bb5d623

这就是我在 buildconfig.groovy 中添加的方式

plugins 
    // plugins for the build system only
    build ":tomcat:7.0.55"
    compile ":audit-logging:1.1.0-SNAPSHOT"

【问题讨论】:

【参考方案1】:

如文档 (http://plugins.grails.org/plugin/audit-logging) 中所述,您必须执行

grails audit-quickstart your.package.YourAuditLogEvent>

在您的项目中创建审计日志域类并在 Config.groovy 中配置该类。

顺便说一句:1.1.0 已经发布了。

【讨论】:

我不一样,// Added by the Audit-Logging plugin: auditDomainClassName = 'com.backface.AuditLog' 但我仍然得到 100% 相同的错误。 Caused by: java.lang.IllegalStateException: Can't find configured AuditLog domain: groovy.util.ConfigObject@2b072e3c 我仍然认为应用程序无法从 Config.groovy 读取域文件名 请检查格式是否与测试申请中的格式相似:github.com/robertoschwald/grails-audit-logging-plugin/blob/… plugins.grails.org 上的文档有错误。正确的快速入门语法是: grails audit-quickstart 确保在 grails-app/domain 中使用正确的包名称创建域类。

以上是关于为 Grails 2.4.4 配置 Auditlog 插件时找不到配置的 AuditLog 域错误的主要内容,如果未能解决你的问题,请参考以下文章

防止 Grails 2.4.4 接受无效日期

Grails 2.4.4 与 Java 8 的兼容性

Spring安全导入在grails 2.4.4下不起作用

如何在 grails 2.4.4 中使用 mongodb?

Grails 2.4.4 executeQuery() 从数据库表连接表

Grails 2.4.4 中的 Spring Security 插件问题