Type definition error - 类型定义错误 /nested exception is com.fasterxml.jackson.databind...


开发过程中发现遇到了一个难题,Type definition error: (错误信息如下代码区),在网上搜索了半天的资料,很多都是说缺了个空参构造,但是我发现这个方法很明显的不适合我的问题,因为我的并不存在实体对象类,也就与空参构造无关了,最后问题的发现点还是在错误信息里;

 

(以下是主要错误信息为了方便查看进行了回车分段,其实是一段)

Type definition error: 
[simple type, class oracle.jdbc.OracleConnection]; 
nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Direct self-reference leading to cycle (through reference chain:
java.util.ArrayList[1]->java.util.LinkedHashMap["data"]->java.util.ArrayList[0]->java.util.HashMap["APP_ICON"]->com.sun.proxy.$Proxy117["wrappedBlob"]->oracle.sql.BLOB["dbaccess"]->oracle.jdbc.driver.T4CConnection["wrapper"])

通过如上错误信息的查看,其实是我的一个字段的类型定义不被识别导致的,可以看到的是HashMap集合中的 “APP_ICON” 的数据类型是 “BLOB” (二进制大对象类型,是一个可以存储二进制文件的容器。),当我把这个字段从我的sql中移除(查询出的数据不含有此字段)后发现数据就可以跑通了;

更好的解决办法后续推出;

 


 

解决办法

解决办法已经找到,其结果是将BLOB数据转成String类型的进行返回,具体代码比较多,再加上其中有遇到了其他问题,所以在这里只放一个链接,大家可以到链接地址中去详细的看看,链接如下:

关于BLOB转为BASE64的详细工具类代码(可直接使用)

另追加:下面这个工具类是我在使用 Mybatis 数据持久层框架时发现用上面的工具类报了个——代理问题,初步分析是因为 Mybatis 在数据处理时存在对代理方面的一些特殊操作,因此我又找到了另一种处理方式,工具类链接如下:

BLOB转BASE64—— 详细工具类(可直接使用、非代理方式)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM