我正在将一个工作 web 应用程序从 Grails 2.3 移植到 3.0.1。当我将 Json 字符串 {"command":"ping"} 发布到服务器时,我得到以下结果:
{"timestamp":1429380750958,"status":405,"error":"Method Not Allowed","exception":"org.springframework.web.HttpRequestMethodNotSupportedException","message":"Request method 'POST' not supported","path":"/rps/request"}
这是控制器:
import org.grails.web.json.JSONObject
class RequestController {
def jsonManagerService
def index() {
JSONObject json = request.JSON
if(!json){
render "{json or gtfo}"
return
}
render jsonManagerService.parseJson(json)
}
}
这是 JsonManagerService:
import grails.transaction.Transactional
import org.grails.web.json.JSONObject
@Transactional
class JsonManagerService {
def parseJson(JSONObject o) {
switch (o.command){
case("ping"):
return '{"result":"pong"}'
break;
default:
return '{"result":"unknown command"}'
}
}
}
这是我的 UrlMappings.groovy (这是默认的):
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
"404"(view:'/notFound')
}
}
它看起来像一个与 Spring 相关的问题。关于这个问题的所有搜索都没有结果。任何想法?
编辑:感谢@dmahapatro,添加了 UrlMappingsgroovy。纠正了控制器,愚蠢的错误,但结果还是一样。