Grails 3和Json:"请求方法' POST'不支持"

时间:2015-04-18 18:22:04

标签: json spring grails grails-3.0

我正在将一个正在运行的Web应用程序从Grails 2.3移植到3.0.1。当我将Json字符串{"命令":" 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。纠正了控制器,哑巴错误,但结果仍然相同。

0 个答案:

没有答案