2014-11-03 73 views
1

我很努力地知道如何在grails中实现REST。在documentation说,我应该能够做到以下几点:grails 2.4.4 @Resource为所有URL提供404

User.groovy

import grails.rest.* 
@Resource(uri='/users') 
class User { 
    // lots of stuff 
} 

UserController.groovy

class UserController { 
static scaffold = true; 
} 

基本上,如果我尝试以下任一网址,我总是得到404:

http://localhost:8080/myapp/users/ 
gives: HTTP Status 404 - "/players/index.gsp" not found. 

http://localhost:8080/myapp/users/1 
gives: 404, the requested resource is not available (I have users defined in bootstrap) 

NOTE:

  1. 我也试过用脚手架线将它注释掉。
  2. .../myapp/user确实有效,但给出了HTML页面
  3. 即使@Resource确实有效,它实际上并不是我正在寻找的。我需要每种方法的自定义逻辑。我已经在2.3中找到了大量有文档记载的不同方法来做这件事,但不知道这是否仍然是2.4的正确方法?
+0

尝试运行'grails url-mappings-report'来查看它是否被映射,但是使用了意想不到的模式,或者根本没有映射到 – 2014-11-03 13:48:16

+0

@burt,那grails命令是一个很棒的提示! – 2014-11-03 17:07:08

回答

4

我发现的工作溶液:

  1. 卸下@Resource(URI = '/用户')线
  2. 添加行: “/用户”(资源: “用户”),以该文件:urlMappings.groovy。

Et瞧,它应该与@Resource注释一样,不需要其他更改。

我只能假设在资源注释中存在一个错误,或者它只在没有控制器已经定义或类似的情况下才起作用。

相关问题