【问题标题】:Sending objects over the wire in grails在 grails 中通过电线发送对象
【发布时间】:2014-03-26 08:44:37
【问题描述】:

我正在使用 REST builder 插件通过 HTTP 将请求从一个 Grails 服务器发送到另一个。

发件人

restClient.get(path: "/shipping",
                query:[dress: dress]

发件人日志:

2014-03-24 23:32:20,299 [main] DEBUG http.wire  - >> "GET /shipping?dress=MyDress(payPassId:2,+dateCreated:Mon+Mar+24+23:32:20+GMT+2014,+dateLastActive:Mon+Mar+24+23:32:20+GMT+2014,+nickName:null,+recipientName:null,+defaultAddress:null,+street1:null,+street2:null,+street3:null,+city:null,+state:null,+country:null,+postalCode:12345,+recipientPhoneNumber:null,+recipientPhoneNumberCountryCode:null) HTTP/1.1[EOL]"

接收者尝试获取礼服对象

MyDress mydress = params.dress;

错误信息是:

无法投射对象'MyDress(payPassId:2,+dateCreated:Mon+Mar+24+23:32:20+GMT+2014,+dateLastActive:Mon+Mar+24+23:32:20+GMT+2014,+nickName:null,+recipientName:null,+defaultAddress:null,+street1:null,+street2:null,+street3:null,+city:null,+state:null,+country:null,+postalCode:12345,+recipientPhoneNumber:null,+recipientPhoneNumberCountryCode:null)' with class 'java.lang.String' to class 'MyDress'

我在这里缺少一些神奇的 API 吗?

【问题讨论】:

  • 你使用的插件是this吗?
  • 我正在使用:groovyx.net.http.RESTClient

标签: grails


【解决方案1】:

这种类型的数据与 Grails 不兼容。您需要将数据作为JSON 发送,或者将它们作为单独的参数发送并使用以下命令创建对象的新实例:

MyAddress instance = new MyAddress(params)

您可能发送的是对象的 toString() 而不是数据(RESTClient 可能需要 Map 而不是 MyDress)。

【讨论】:

    猜你喜欢
    • 2015-07-07
    • 1970-01-01
    • 2012-06-19
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多