在grails中通过电线发送对象

时间:2014-03-24 23:40:35

标签: grails

我正在使用REST构建器插件通过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吗?

1 个答案:

答案 0 :(得分:1)

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

MyAddress instance = new MyAddress(params)

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