Как правильно пользоваться услугой отдыха в Граале? - PullRequest
0 голосов
/ 19 мая 2019

я пытаюсь создать приложение grails с scaffold и rest api, все нормально с scaffold, но когда я пытаюсь получить информацию от остальных api, я получаю некоторые ошибки мой код:

package estudiolegal

import grails.plugin.springsecurity.annotation.Secured
import grails.rest.Resource

import static org.springframework.http.HttpStatus.*

@Resource(uri='/api/proyectos', formats=['json', 'xml'])
@Secured(['ROLE_ADMIN','ROLE_ABOGADO','ROLE_CLIENTE'])
class ProyectoController {
    ProyectoService proyectoService

    static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
    def index = {
        redirect action: "list"
    }

    def create() {
        respond new Proyecto(params)
    }

    def save = {
        def proyecto = new Proyecto(params)
        proyecto.addToUsuarios(applicationContext.springSecurityService.currentUser)
        proyecto.save flush: true, failOnError: true
        redirect action: "show", id: proyecto.id
    }

    def edit(Long id) {
        respond proyectoService.get(id)
    }

    def update = {
        def proyecto = Proyecto.get(params.id)
        proyecto.properties = params
        proyecto.save flush: true, failOnError: true
        redirect action: "show", id: params.id
    }

    def show (Long id){
        respond proyectoService.get(id)
    }

    def list = {
        def proyectos = Proyecto.list()
        [proyectos: proyectos]
    }

    def delete = {

        def proyecto = Proyecto.get(params.id)
        proyecto.usuarios.each {
            if(it.proyectos.contains(proyecto))
            {
                it.removeFromProyectos(proyecto)
            }
        }
        proyecto.delete flush: true, failOnError: true
        redirect action: "index"
    }

    protected void notFound() {
        request.withFormat {
            form multipartForm {
                flash.message = message(code: 'default.not.found.message', args: [message(code: 'proceso.label', default: 'Proyecto'), params.id])
                redirect action: "index", method: "GET"
            }
            '*'{ render status: NOT_FOUND }
        }
    }

}

когда я пытаюсь вызвать это http://localhost:8080/api/proyectos, в то время как График RestClient показывает ошибки

2019-05-18 15: 36: 28.202 ОШИБКА --- [nio-8080-exec-8] ogweb.errors.GrailsExceptionResolver: MissingMethodException произошла при обработке запроса: [GET] / api / proyectos Нет подписи метода: static estudiolegal.ProyectoController.count () применима для типов аргументов: () values: [] Возможные решения: print (java.io.PrintWriter), печать (java.lang.Object), wait (), create (), edit (), list ().Ниже приведено следование стека:

java.lang.reflect.InvocationTargetException: null at org.grails.core.DefaultGrailsControllerClass $ ReflectionInvoker.invoke (DefaultGrailsControllerClass.java:211) в org.grails.ontrolGontControllerCoreCare.Java: 188) в org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle (UrlMappingsInfoHandlerAdapter.groovy: 90) в org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherSerg.prv) at67.servlet.DispatcherServlet.doService (DispatcherServlet.java:901) в org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:970) в org.springframework.web.servlet.j.web.Servwork) в org.springframework.web.servlet.FrameworkServlet.service (FrameworkServlet.java:846) в grails.plugin.springsecurity.rest.RestLogoutFilter.doFilter (RestLogoutFilter.groovy: 80) в org.springframebo.boApplicationContextHeaderFilter.doFilterInternal (ApplicationContextHeaderFilter.java:55) в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:317) в org.springframework.security.interin.terter.Interter.Java: 127) в org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter (FilterSecurityInterceptor.java:91) в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.jgIn: atgilter.springframework.security.web.access..GrailsHttpPutFormContentFilter.doFilterInternal (GrailsHttpPutFormContentFilter.groovy: 54) в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.jils:p)lugin.springsecurity.rest.RestTokenValidationFilter.FilterChainProxy.java:331) по адресу grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter (GrailsAnonymousAuthenticationFilter.groovy: 54) по адресу org.springframework.security.web.FilterChainFoxFarg.springframework.security.web..doFilter (RestAuthenticationFilter.groovy: 143) в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:331) по адресу grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter (MutableLogoutFilter.groovy: 64)по адресу org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:331) по адресу grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter (SecurityRequestHolry.Serf.Fine.Firg.File.SherFF).$ VirtualFilterChain.doFilter (FilterChainProxy.java:331) в org.springframework.security.web.FilterChainProxy.doFilterInternal (FilterChainProxy.java:214) в org.springframework.security.web.FilterChain (ProxyChain) Proinorg.grails.web.servlet.mvc.GrailsWebRequestFilter.ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в java.lang.Thread.run (Thread.java:748) Причина: groovy.lang.MissingMethodException:подпись метода: статический estudiolegal.ProyectoController.count () применим для типов аргументов: () values: [] Возможные решения: print (java.io.PrintWriter), print (java.lang.Object), wait (), create (), edit (.: 94) в org.springframework.transaction.support.TransactionTemplate.execute (TransactionTemplate.java:133) в grails.gorm.transactions.GrailsTransactionTemplate.execute (GrailsTransactionTemplate.groovy: 91) ... пропущено 38 общих фреймов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...