【发布时间】:2012-10-17 13:49:30
【问题描述】:
我正在将 grails 插件从 1.3.4 升级到 grails 2.1.1。升级后,我现在有一个失败的集成测试,以前没有失败。使用“as JSON”(grails.converters.JSON)失败。
@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 'com.company.ipsvc.configuration.domain.EnvironmentSettingAllRevs@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 相同的问题。
【问题讨论】:
-
我发现只有在使用休眠映射 xml 文件并且不将类放在域文件夹中而是在 src/groovy 文件夹中时才会出现问题。我需要使用休眠映射文件配置域类,所以这只有助于我缩小问题的范围。 Grails 确实将我的类视为域类,我比较了使用休眠映射文件在域文件夹内的域类和外部域类之间生成的方法,唯一不是由域文件夹外部生成的方法是“autowireDomain”
-
我发现这个错误jira.grails.org/browse/GRAILS-9089 看起来可能相关,但没有解决方案。
-
尚无解决方案,但记录了一个错误。 jira.grails.org/browse/GRAILS-9513
标签: json grails-2.0