3

我正在将一个工作 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。纠正了控制器,愚蠢的错误,但结果还是一样。

4

0 回答 0