我试图使用Grails的2.5.5创建一个REST的服务具有日期属性,如下所示:Grails的REST客户端转换字符串java.util.Date
import grails.rest.*
@Resource(uri='/restDomain', readOnly=true)
class RestDomain {
Date myDate
}
但从另一个调用时Grails的应用程序(V2.5.5或v3.1.9)是这样的:
new RestBuilder().get('http://localhost:8080/restApp/restDomain.json').json.collect {
new RestDomain(it)
}
我得到Cannot cast object '2016-01-20T12:36:57Z' with class 'java.lang.String' to class 'java.util.Date'
错误。
我已经加入这application.yml(Grails的v3.1.9)在文件
---
grails:
databinding:
dateFormats:
- yyyy-MM-dd'T'HH:mm:ssX
- yyyy-MM-dd'T'HH:mm:ss.SSSX
的最底部,这Config.groovy中(Grails的V2.5.5)
grails.databinding.dateFormats = ["yyyy-MM-dd'T'HH:mm:ssX", "yyyy-MM-dd'T'HH:mm:ss.SSSX"]
但似乎并没有在所有
注意工作:在这两个客户端应用程序我都对应src/groovy/restApp/RestDomain.groovy
类,如下所示:
package restApp
class RestDomain {
Date myDate
}
注2:Grails的3.1.9客户端应用程序具有compile 'org.grails:grails-datastore-rest-client:6.0.0.M1'
依赖性中的build.gradle依赖关系部分,和Grails的2.5.5客户端应用程序已在BuildConfig.groovy compile ':rest-client-builder:2.1.1'
插件部分
任何帮助越来越它在Grails 2.5.x或Grails 3.1.x应用程序中工作将非常感谢
我已经尝试与该格式,问题似乎是数据绑定根本不起作用,我会尝试使用其他一些简单的格式来验证它是'T'还是'Z' – nardhar
我在类上添加了BindUsing注释,如下所示:'@ BindUsing({obj,source-> source.getPropertyValue('myDate'as Date)})'它也不起作用,事实上,我猜测''Date'转换会破坏程序 – nardhar