问题:
使用单选查询创建输入控件时,如果我们在值或可见字段中包含任何 RAW ID(如 GUID(,服务器将引发运行时异常:
2018-09-11 14:25:50,813 ERROR GenericExceptionMapper,http-nio-8080-exec-1:51 - Unexpected error occurs
java.lang.IllegalStateException: Processor of type com.jaspersoft.jasperserver.war.cascade.handlers.converters.DataConverter for class [B not configured
详
碧玉服务器版本:6.6.0
如何复制: 上传任何示例报告并编辑此报告。通过选择"单选查询"选项将输入控件添加到此报表。填写必填字段,然后在"定义查询"页上添加以下查询
select sys_guid() as ID from dual
然后在"设置参数值"页上,输入"ID"作为"值列",输入"ID"作为"可见列"。提交并保存输入控件和报表。当您执行此报告时,Jasperreports服务器会抛出上述错误。
任何帮助将不胜感激。
该错误是由于 RAW 值通过 JDBC 映射到 byte[],并且 JasperReports Server 输入控制代码无法处理字节数组。
解决方案是更改查询以通过 RAWTOHEX 将 RAW 值转换为 VARCHAR/字符串值
select RAWTOHEX(sys_guid()) as ID from dual