Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails3:AuthRoleControl中java.lang.Boolean hasErrors()的返回类型与grails.artefact.Controller中的Boolean不兼容_Java_Grails_Upgrade - Fatal编程技术网

Grails3:AuthRoleControl中java.lang.Boolean hasErrors()的返回类型与grails.artefact.Controller中的Boolean不兼容

Grails3:AuthRoleControl中java.lang.Boolean hasErrors()的返回类型与grails.artefact.Controller中的Boolean不兼容,java,grails,upgrade,Java,Grails,Upgrade,我已经将我的应用程序从Grails2.5升级到Grails3.3.11。我已经完成了所有步骤,一切看起来都很好,但当我运行应用程序时。我有一个错误: 启动失败: /home/server dev/Documents/dev_repo/tms/grails app/controllers/org/niport/auth/AuthRoleController.groovy:-1:org.niport.auth.AuthRoleController中java.lang.Boolean hasrerro

我已经将我的应用程序从Grails2.5升级到Grails3.3.11。我已经完成了所有步骤,一切看起来都很好,但当我运行应用程序时。我有一个错误:

启动失败: /home/server dev/Documents/dev_repo/tms/grails app/controllers/org/niport/auth/AuthRoleController.groovy:-1:org.niport.auth.AuthRoleController中java.lang.Boolean hasrerrors()的返回类型与grails.artifact.Controller中的Boolean不兼容 . 在[-1:-1]@第1行第1列。 1错误

失败:生成失败,出现异常

  • 出了什么问题: 任务“:compileGroovy”的执行失败
编译失败;有关详细信息,请参阅编译器错误输出

任何想法或帮助都会很有帮助,非常感谢

------------------------AuthUserController.groovy---------------------

     import grails.plugin.springsecurity.SpringSecurityService
        import grails.transaction.Transactional
        import org.niport.com.ComTrainingCenter
        import org.niport.com.ComTrainingCenterService
        import org.niport.com.FileService
        import org.niport.com.TrackerService
        import org.springframework.security.core.context.SecurityContextHolder
        
        import javax.imageio.ImageIO
        import java.awt.image.BufferedImage
        
        import static org.springframework.http.HttpStatus.CREATED
        import static org.springframework.http.HttpStatus.OK
        
        @Transactional(readOnly = true)
        class AuthUserController {
            private static final allowedImageType = ['image/png', 'image/jpeg']
        
            SpringSecurityService springSecurityService
            AuthUserService       authUserService
            TrackerService        trackerService
            FileService           fileService
            def                   dateParseFormat,
                                  currentDate
            AuthUser currentUser
        @Transactional
        save(AuthUser userInstance) {
            if (userInstance == null) {
                flash.error = message(code: "default.message.noRecordFound.label", default: "Error-Save-AuthUser-L21 : Record not found...!")
                redirect(action: "create")
                return
            }
            
    
            userInstance.avatarType = params.attachment ? fileService.uploadFile("auth", "auth_user", userInstance?.username, "any", 1, 5000000, params.attachment) : null
            userInstance.createdBy = currentUser?.id
            userInstance.properties["hdCode"] = trackerService.getHdCode(params.password)
    
            userInstance.validate()
            if (userInstance.hasErrors()) {
                flash.error = "Error-Save-AuthUser-L27 : " + userInstance.errors
                redirect(action: "create", userInstance: userInstance)
                return
            }
    
            try {
                userInstance.save(failOnError: true)
            }
            catch (Exception e) {
                println "ex-user-sa-L112 : " + e
                flash.error = "Error-Save-AuthUser-L113 : " + e
                redirect(action: "create", userInstance: userInstance)
                return
            }
    
            request.withFormat {
                form multipartForm {
                    flash.success = message(code: "default.message.created", args: [message(code: "user.pageTitle.label", default: "AuthUser"), userInstance.id])
                    redirect userInstance
                }
                '*' { respond userInstance, [status: CREATED] }
            }
        }}

--------------------------AuthRoleController.groovy ----------------------
mport grails.transaction.Transactional
import grails.validation.Validateable
//import grails.artefact.Controller 
//import java.lang.*

import static org.springframework.http.HttpStatus.CREATED
import static org.springframework.http.HttpStatus.OK
class AuthRoleController implements Validateable {

    static allowedMethods = [save: "POST", update: "PUT"]

    def springSecurityService, dateFormat, currentDate, currentUser

    def beforeInterceptor = {
        currentDate = new Date()
        currentUser = springSecurityService.getCurrentUser()
        dateFormat  = grailsApplication.config.format.dtp.date
    }
 @Transactional
    def save(AuthRole roleInstance) {
        roleInstance.createdBy=(AuthUser)currentUser
        roleInstance.validate()
        if (roleInstance == null) {
            flash.error = message(code: "default.message.noRecordFound.label", default: "Error-Save-AuthRole-L21 : Record not found...!")
            redirect(action: "create")
            return
        }
        log.info "${roleInstance}";
        if (roleInstance.hasErrors()) {
            flash.error = "Error-Save-AuthRole-L27 : " + roleInstance.errors
            redirect(action: "create", roleInstance: roleInstance)
            return
        }

        try {
            roleInstance.save failOnError: true
        }
        catch (Exception e) {
            flash.error = "Error-Save-AuthRole-L36 : " + e
            redirect(action: "create", roleInstance: roleInstance)
            return
        }

        request.withFormat {
            form multipartForm {
                flash.success = message(code: "default.message.created", args: [message(code: "role.pageTitle.label", default: "AuthRole"), roleInstance.id])
                redirect roleInstance
            }
            '*' { respond roleInstance, [status: CREATED] }
        }
    }

}

}
类AuthRoleControl实现可验证的

没有充分的理由让控制器实现
可验证的
特性,这样做会导致问题


问题是您将获得两个名为
hasrerrors
,一个来自,一个来自,并且它们具有不同的返回类型。

org.niport.auth.authroleconroller中是否有名为
hasrerrors
的方法?如果否,控制器是否显式扩展任何类或实现任何特征?Hi@JeffScottBrown这只是与控制器关联的Spring错误交互的实例。但我可以将相关控制器的代码作为答案共享这与您的问题无关,但您添加的代码指向了另一个问题,即您的控制器将无法与并发请求兼容,因为您在
AuthRoleControl
中处理
currentUser
。除非将控制器配置为请求范围,否则这将被破坏,这是一个坏主意。从控制器中删除
可验证的
不会消耗任何功能。它的出现并没有带来任何帮助。谢谢Jeff,我将删除可验证的界面,如果它有效,我现在就让你使用