3

我遇到了一个奇怪的问题,即 grails 将任何使用 @Transactional 注释的服务注入 1.3.7 中的任何控制器。

SyncSpInfoService:</p>

 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出错,我修改它,再次运行,出现如下错误:Error:test.SyncSpInfoService cannot be cast to test.SyncSpInfoService

我不知道为什么?请帮助我,谢谢...

4

1 回答 1

0

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

    def syncSpInfoData(datasource) {} // and you don't need the throws
于 2012-05-16T08:21:25.430 回答