我正在将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