无法将任何使用@Transactional注释的服务注入1.3.7中的任何控制器

时间:2012-05-16 07:51:54

标签: grails transactions

我遇到一个奇怪的问题,关于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

我不是为什么?请帮帮我,很多......

1 个答案:

答案 0 :(得分:0)

尝试删除服务方法参数中的'def':

    def syncSpInfoData(datasource) {} // and you don't need the throws