я пытаюсь создать приложение 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 общих фреймов