【发布时间】:2014-01-16 23:52:47
【问题描述】:
我正在尝试调试一个保存域对象的简单问题。
class AppRideOfferController {
def index() {}
def create() {
if(params.fromAddr && params.toAddr && params.preferences && params.startDate) {
RideOffer rideOffer = new RideOffer(startLocation: params.fromAddr, endLocation: params.toAddr, startDateTime: new Date(Integer.parseInt((String) params.startDate)));
rideOffer.save(flush: true);
//assert(rideOffer.id);
log.info("blah");
render(contentType:"text/json") {
result(blah: rideOffer)
};
}
}
}
在上面的代码中,我只是创建了一个域对象,保存它,然后将它作为 json 返回,其中包含生成的 id。但是,如果我取消注释资产声明,它会失败,因为 id 未设置。
我在控制台上没有收到任何错误,所以我想知道如何将运行时错误堆栈跟踪记录到标准输出上?我的 Config.groovy 的 log4j 配置如下所示:
log4j = {
// Example of changing the log pattern for the default console appender:
//
appenders {
console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
}
info 'grails.app.controllers',
'grails.app.controller',
'grails.app';
error 'org.codehaus.groovy.grails.web.servlet', // controllers
'org.codehaus.groovy.grails.web.pages', // GSP
'org.codehaus.groovy.grails.web.sitemesh', // layouts
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
'org.codehaus.groovy.grails.web.mapping', // URL mapping
'org.codehaus.groovy.grails.commons', // core / classloading
'org.codehaus.groovy.grails.plugins', // plugins
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
'org.springframework',
'org.hibernate',
'net.sf.ehcache.hibernate'
}
【问题讨论】:
-
域类长什么样子?您是否在映射中特别提到生成器为
assigned?