我正在將grails插件從1.3.4升級到grails 2.1.1。升級後,我現在有一個集成測試,失敗之前沒有失敗。它無法使用「作爲JSON」(grails.converters.JSON)。從grails升級到grails 2.1.1後無法使用「as JSON」1.3.4
@Test
public void testConvertCollectionOfEnvironmentSettingsToJSON() {
EnvironmentSetting setting = configurationService.getEnvironmentSetting('ENFORCE_SCHEMA_INSTANCE_RULE')
def jsonSetting = setting as JSON //exception thrown here
def s = jsonSetting as String
assertNotNull jsonSetting
}
異常和堆棧跟蹤:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'c[email protected]48c12420' with class 'com.company.ipsvc.configuration.domain.EnvironmentSettingAllRevs' to class 'grails.converters.JSON'
at com.company.ipsvc.configuration.converter.json.basic.BasicEnvironmentSettingJSONIntegrationTests.testConvertCollectionOfEnvironmentSettingsToJSON(BasicEnvironmentSettingJSONIntegrationTests.groovy:28)
我能夠()成功地使用encodeAsJSON。我也有與XML相同的問題。
我發現我只有這個問題時,我使用Hibernate映射XML文件和不要將該類放入域文件夾中,而是放在src/groovy文件夾中。我需要使用hibernate映射文件來配置域類,所以這隻能幫助我縮小問題的範圍。 Grails的確實把我的類作爲域類和我相比外使用休眠映射文件和未由域文件夾以外的一個產生的唯一的方法是「autowireDomain域文件夾內的域類和一個之間產生的方法「 – mdamman
我發現這個bug http://jira.grails.org/browse/GRAILS-9089看起來可能是相關的,但沒有解決方案。 – mdamman
還沒有解決方案,但記錄了一個錯誤。 http://jira.grails.org/browse/GRAILS-9513 – mdamman