Dorado 9 : 03. 开发过程中的常见异常以及解决办法

com.bstek.dorado.data.type.DefaultEntityDataType cannot be cast to com.bstek.dorado.data.type.AggregationDataType

这个错误为DataSet或Reference的DataType属性含中括号"【xxx】"是集合类型,而DataProvider提供的返回数据是单个JavaBean所致。

调整办法:将dataType属性设置调整为单实体对象,也就是去掉中括号。

com.bstek.dorado.data.type.AggregationDataType cannot be cast to com.bstek.dorado.data.type.DefaultEntityDataType

这个就是上面那个错误的相反的形式。

这个错误为DataSet或Reference的DataType属性含中括号"【xxx】"是单个的实体对象,而DataProvider提供的返回数据是集合类的JavaBean所致。

调整办法:将dataType属性设置调整为对象集合,也就是添加上中括号。

找不到DataProvider,DataResolver或Expose方法

Unknown ExposedService [xxxxxx#xxxx]

Unknown DataProvider [xxxxxx#xxxx]

发生该错误一般检查三个地方:

  • Ajax对应的Java方法是否声明了@Expose标记,DataProvider对应的Java方法是否声明了@DataProvider标记
  • 对应的server或dataProvider属性配置的首字母未改写为小写,如:"SimpleAjax#toUpperCase"要改写为"simpleAjax#toUpperCase"(如果Java类前两个字母都大写则要用"SImpleAjax#toUpperCase")
  • 方法对应的Java类是否已经使用@Component标记
  • app-context.xml中是否配置了扫描目录<context:component-scan base-package="com.demo.sample"/>(注意base-package要配置为对应的Java类的相关路径上,要包含所有相关的服务类,如果一个base-package无法定义,则可以定义多个<context:component-scan>节点)

都配置好之后重新启动服务,因该就可以了。