hibernate - Grails 3其余配置文件422不可显示实体在显示操作中出现结果

标签 hibernate rest http grails http-headers

我对此感到烦恼,无法解决,但在这里找不到任何答案。

我在Grails 3.1.10中有一个带有其余概要文件的应用程序,我有一些域类和它们各自的 Controller ,我可以使用POST创建新对象以保存操作,使用PUT更新它们以更新操作,并使用GET列出它们以索引操作,但是我无法在GET中获得正确的响应以显示操作。

我不确定请求或应用程序中存在的问题

我的网址映射如下:

"/$controller/$action?/$id?(.$format)?"{
       constraints {
           // apply constraints here
       }

我也尝试过
get "/resources/$id"(controller:"resource", action:"show")

结果相同:422:无法处理的实体,“错误”:[10] 0:{
“message”:“类[class]的属性[]不能为空”“path”:“/ 1”“_links”:{“self”:{“href”:“http://localhost:8080/1”}-}-}
对于与id不同的每个属性。

我正在对http://localhost:8080/resource/show/1(或第二种配置中的http://localhost:8080/resources/1)执行http get请求,带有以下 header :“Content-Type:application / json”和“Authorization:Bearer”(我正在使用Spring Security Rest插件来保护应用程序的安全)。对http://localhost:8080/resource/index的相同请求(或在第二种配置中对http://localhost:8080/resources/的请求)完美运行,并向我返回了包含所有对象的json。

干杯!

最佳答案

我认为您应该检查以下两个选项之一:

  • 在域类中使用@Resource并且不创建 Controller (在这种情况下,grails会自动生成)
  • 如果您想拥有更多控制权,则可以使用url映射资源+扩展了RestfulController的Controller,如文档部分10.1.5.1(http://docs.grails.org/latest/guide/single.html#webServices)中所述

  • 在第二个选项中,您将在URlMappings中需要以下内容:
    "/books"(resources:"book")
    

    以及类似的 Controller :
    class BookController extends RestfulController {
      static responseFormats = ['json', 'xml']
      BookController() {
        super(Book)
      }
    }
    

    关于hibernate - Grails 3其余配置文件422不可显示实体在显示操作中出现结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39043753/

    相关文章:

    Spring JPA 存储库@PostConstruct

    java - JPA 如何从 OneToMany 关系中的对象的 Arraylist 获取属性

    java - DB2 中的 JDBC 和 Hibernate 错误 : Connection authorization failure occurred | SQL Error: -99999, SQLState: 42505

    ruby-on-rails-3 - 在 SOA 架构中使用 SPDY

    java - 使用 Apache HttpClient 发布 MultipartEntity 时,ByteArrayBody 可以工作,但 InputStreamBody 会抛出 NoHttpResponseException

    wordpress - 网站链接的重定向/安全问题

    c - 如何通过http请求向http服务器发送文件

    mysql - 快速获取1000+记录

    java - 何时在 lucene 中进行索引

    java.lang.NoSuchFieldError : WADL_JSON in creating jersey rest client