4
我有一些代碼,我試圖從Grails 1.3.7移植到Grails 2.2。控制器繼承grails 2.2
目前的問題是,我有一個BaseController
類,它定義了一些便利方法,以及從它繼承的特定控制器(實際由Grails實例化的控制器)。
package com.fxpal.querium
import grails.converters.JSON
import groovy.lang.Closure;
abstract class BaseController {
protected def executeSafely(Closure c) {
def resp = null
try {
populateContext();
resp = c()
}
catch(Exception ex) {
resp = [error: ex.message]
ex.printStackTrace()
}
def json = resp as JSON
return json
}
protected void populateContext() {
}
}
派生類的一個例子是
package com.fxpal.querium
import grails.converters.JSON
import grails.plugins.springsecurity.Secured
import javax.servlet.http.HttpServletResponse
@Secured(['IS_AUTHENTICATED_REMEMBERED'])
class DocumentController extends BaseController {
def grailsApplication
@Secured(['IS_AUTHENTICATED_ANONYMOUSLY'])
def getText = {
try {
String text = new URL(grailsApplication.config.querium.docurl + params.paperId).text
render contentType: 'text/plain', text: text
}
catch(Exception ex) {
render contentType: 'text/plain', text: "Error loading document: ${ex.getMessage()}; please retry"
}
}
...
}
這個工作Grails中1.3.7。當我嘗試使用Grails 2.2編譯我的應用程序時,出現以下錯誤:
C:\code\querium\AppServer-grails-2\grails-app\controllers\com\fxpal\querium\DocumentController.groovy: -1: The return ty
pe of java.lang.Object getGrailsApplication() in com.fxpal.querium.DocumentController is incompatible with org.codehaus.
groovy.grails.commons.GrailsApplication getGrailsApplication() in com.fxpal.querium.BaseController
. At [-1:-1] @ line -1, column -1.
此模式不再受支持嗎?我試着添加abstract
爲BaseController
聲明(在Grails 1.3.7中這不是必需的),但這似乎沒有任何區別。如果有問題,我在清理後編譯我的代碼。
PS:對於那些誰可以:請創建grails-2.2
標籤