错误:
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.reflection.ReflectionException: Illegal overloaded getter method with ambiguous type for property processInstance in class class org.activiti.engine.impl.persistence.entity.ExecutionEntity. This breaks the JavaBeans specification and can cause unpredictable results.
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:120) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:92) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:373) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:119) ~[mybatis-3.4.5.jar:3.4.5]
... 30 common frames omitted
Caused by: org.apache.ibatis.reflection.ReflectionException: Illegal overloaded getter method with ambiguous type for property processInstance in class class org.activiti.engine.impl.persistence.entity.ExecutionEntity. This breaks the JavaBeans specification and can cause unpredictable results.
at org.apache.ibatis.reflection.Reflector.resolveGetterConflicts(Reflector.java:138) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.reflection.Reflector.addGetMethods(Reflector.java:108) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.reflection.Reflector.<init>(Reflector.java:63) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.reflection.DefaultReflectorFactory.findForClass(DefaultReflectorFactory.java:44) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.reflection.MetaClass.<init>(MetaClass.java:39) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.reflection.MetaClass.forClass(MetaClass.java:43) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.SqlSourceBuilder$ParameterMappingTokenHandler.buildParameterMapping(SqlSourceBuilder.java:84) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.SqlSourceBuilder$ParameterMappingTokenHandler.handleToken(SqlSourceBuilder.java:67) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.parsing.GenericTokenParser.parse(GenericTokenParser.java:78) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.SqlSourceBuilder.parse(SqlSourceBuilder.java:45) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.scripting.defaults.RawSqlSource.<init>(RawSqlSource.java:46) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.scripting.defaults.RawSqlSource.<init>(RawSqlSource.java:40) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.scripting.xmltags.XMLScriptBuilder.parseScriptNode(XMLScriptBuilder.java:58) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.scripting.xmltags.XMLLanguageDriver.createSqlSource(XMLLanguageDriver.java:44) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:94) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:135) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:128) ~[mybatis-3.4.5.jar:3.4.5]
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:118) ~[mybatis-3.4.5.jar:3.4.5]
... 33 common frames omitted
解释:
属性"processInstance",这个字段不符合javaBean的命名规范导致的。
类中属性processInstance 同时存在isProcessInstance 和 getProcessInstance 方法,反射在获取getter时迷惑,修改掉is方法名称或删除一个即可。
补充知识:
Java语言欠缺属性、事件、多重继承功能。所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码。Java Bean正是编写这套胶水代码的惯用模式或约定。这些约定包括getXxx、setXxx、isXxx、addXxxListener、XxxEvent等。遵守上述约定的类可以用于若干工具或库。
JavaBean规范中规定boolean的getter/setter 为isXXX/setXXX,包装类Boolean的getter/setter。