我試圖使用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