当前位置: 代码迷 >> 综合 >> No typehandler found for property createTime
  详细解决方案

No typehandler found for property createTime

热度:74   发布时间:2023-12-07 00:53:36.0

2019-07-29 11:20:25,811 WARN [org.apache.ibatis.io.ResolverUtil] - Could not examine class 'com/pengji/linker/common/security/shiro/HasAnyPermissionsTag.class' due to a java.lang.NoClassDefFoundError with message: javax/servlet/jsp/tagext/TagSupport

 

启动dubbo时一直重复报这个warning,报到最后抛错:

(同样错误的另外一种表现 Type handler was null on parameter mapping for property 'createTime')

Caused by: java.lang.IllegalStateException: No typehandler found for property createTime       at org.apache.ibatis.mapping.ResultMapping$Builder.validate(ResultMapping.java:151)       at org.apache.ibatis.mapping.ResultMapping$Builder.build(ResultMapping.java:140)       at org.apache.ibatis.builder.MapperBuilderAssistant.buildResultMapping(MapperBuilderAssistant.java:382)       at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildResultMappingFromContext(XMLMapperBuilder.java:378)       at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:280)       at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:252)       at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:244)       at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:116)       ... 81 common frames omitted  

 

发现对象属性使用LocalDateTime这是jdk8的新属性

 

之前项目依赖为:

 <!--用于处理mybatis与java8中的localDate的sql映射--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-typehandlers-jsr310</artifactId><version>1.0.1</version></dependency><dependency><groupId>com.fasterxml.jackson.datatype</groupId><artifactId>jackson-datatype-jsr310</artifactId></dependency>

加了还是会报,遂改为:

<!--LocalDateTime-->
<dependency><groupId>com.fasterxml.jackson.datatype</groupId><artifactId>jackson-datatype-jsr310</artifactId><version>2.9.2</version>
</dependency>
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-typehandlers-jsr310</artifactId><version>1.0.2</version>
</dependency>

正常启动,大概是依赖关系错误吧,包冲突之类的问题。

 

后续:

由于其他模块也有LocalDateTime,pom文件这个版本又不起作用了,遂升级了mybatis版本。

如果不想加入新的依赖,也不想加入配置文件,则只需要将mybatis升级到3.4.6,将mybatis-spring的版本是升级到1.3.2即可,此时可以直接支持JDK1.8的日期类型。

<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version>
</dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.2</version>
</dependency>

 

  相关解决方案