我遇到一个奇怪的问题,关于grails将任何使用@Transactional注释的服务注入1.3.7中的任何控制器。
SyncSpInfoService:
package test
import org.springframework.transaction.annotation.*
class SyncSpInfoService {
static transactional = false
@Transactional
def syncSpInfoData(def dataSource)throws RuntimeException{
...
}
控制器:
package test
class SyncSpInfoController {
def syncSpInfoService
def dataSource
def index = {
try{
syncSpInfoService.syncSpInfoData(dataSource)
render "Success"
return
}catch(RuntimeException e){
e.printStackTrace()
render "Error:"+e.getMessage()
return
}
}
}
运行控制器,如果SyncSpInfoService出错,那么我修改它,然后再次运行,有如下错误: 错误:test.SyncSpInfoService无法强制转换为test.SyncSpInfoService
我不是为什么?请帮帮我,很多......
答案 0 :(得分:0)
尝试删除服务方法参数中的'def':
def syncSpInfoData(datasource) {} // and you don't need the throws