小白求帮助!!!!!!!

问题概述

第一次使用springboot搭建了一个项目,使用dubbo+zk做分布式,前台子系统调用后台服务,运行成功,但是调用时出错,大概问题出在mapper,使用了com.github.abel533的mapper插件,写了mapperProvider,报错没有无参构造方法,怀疑各个插件版本有问题,调试后无果,希望有大神协助,感谢!!!!

POM配置


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.ec</groupId><artifactId>parent</artifactId><version>0.0.1-SNAPSHOT</version><name>parent</name><packaging>pom</packaging><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR1</spring-cloud.version><mapper.version>2.3.2</mapper.version><!--<mapper.version>3.0.1</mapper.version>--><dubbo.starter.version>2.0.0</dubbo.starter.version><!--<dubbo.starter.version>1.0.0</dubbo.starter.version>--><dubbo.version>2.5.3</dubbo.version><zkclient.version>0.10</zkclient.version><druid.version>1.0.28</druid.version><pagehelper.version>3.4.2</pagehelper.version><jsqlparser.version>0.9.1</jsqlparser.version><!--<pagehelper.version>4.1.1</pagehelper.version>--><!--<jsqlparser.version>0.9.4</jsqlparser.version>--></properties><dependencies><!-- spring-boot-starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- spring-boot-starter-web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- spring-boot-starter-test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- spring-boot-starter-amqp --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency><!-- spring-boot-starter-data-redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- spring-boot-starter-data-solr --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-solr</artifactId></dependency><!-- spring-boot-starter-data-jdbc --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- ********************************************* --><!--引入阿里druid监控  --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><!-- dubbo --><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>${dubbo.starter.version}</version></dependency><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>${zkclient.version}</version><exclusions><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></exclusion><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency><!-- 通用Mapper --><dependency><groupId>com.github.abel533</groupId><artifactId>mapper</artifactId><version>${mapper.version}</version></dependency><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.0.0</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.1.3</version></dependency><!-- jedis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency><!-- 时间操作组件 --><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><!--<version>${joda-time.version}</version>--></dependency><!-- 定时任务 --><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.1</version></dependency><!--定时任务需要依赖c3p0jar包  --><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins></plugins></build></project>

依赖版本

MapperProvider代码

package com.ec.common.mapper;import com.github.abel533.mapper.MapperProvider;
import com.github.abel533.mapperhelper.EntityHelper;
import com.github.abel533.mapperhelper.MapperHelper;import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.scripting.xmltags.ForEachSqlNode;
import org.apache.ibatis.scripting.xmltags.MixedSqlNode;
import org.apache.ibatis.scripting.xmltags.SqlNode;
import org.apache.ibatis.scripting.xmltags.StaticTextSqlNode;
import org.apache.ibatis.jdbc.SQL;import java.util.ArrayList;
import java.util.List;
import java.util.Set;//import static org.apache.ibatis.jdbc.SqlBuilder.*;public class SysMapperProvider extends MapperProvider {//    public SysMapperProvider(){
//        super();
//
//    }public SysMapperProvider(Class<?> mapperClass, MapperHelper mapperHelper) {super(mapperClass, mapperHelper);}//这些方法 就是为了生成sql语句/*** 参数说明:*     SqlNode:mybatis提供一个sql语句的载体.*  通过sqlNode对象包含sql语句.则最终执行时提取sql*  MappedStatement:mybatis提供的内置对象*  通过对象可以灵活的获取当前正在执行的方法的具体参数和路径** @param ms* @return*/public SqlNode deleteByIDS(MappedStatement ms) {Class<?> entityClass = getSelectReturnType(ms);Set<EntityHelper.EntityColumn> entityColumns = EntityHelper.getPKColumns(entityClass);EntityHelper.EntityColumn column = null;for (EntityHelper.EntityColumn entityColumn : entityColumns) {column = entityColumn;break;}List<SqlNode> sqlNodes = new ArrayList<SqlNode>();// 开始拼sql
//        BEGIN();// delete from table
//        DELETE_FROM(tableName(entityClass));// 得到sqlString sql =new SQL(){{DELETE_FROM(tableName(entityClass));}        }.toString();// 静态SQL部分sqlNodes.add(new StaticTextSqlNode(sql + " WHERE " + column.getColumn() + " IN "));// 构造foreach sqlSqlNode foreach = new ForEachSqlNode(ms.getConfiguration(), new StaticTextSqlNode("#{"+ column.getProperty() + "}"), "ids", "index", column.getProperty(), "(", ")", ",");sqlNodes.add(foreach);return new MixedSqlNode(sqlNodes);}}

报错内容


org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error invoking SqlProvider method (com.ec.common.mapper.SysMapperProvider.dynamicSQL).  Cause: java.lang.InstantiationException: com.ec.common.mapper.SysMapperProviderat org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77) ~[mybatis-spring-1.3.1.jar:1.3.1]at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446) ~[mybatis-spring-1.3.1.jar:1.3.1]at com.sun.proxy.$Proxy79.selectList(Unknown Source) ~[na:na]at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230) ~[mybatis-spring-1.3.1.jar:1.3.1]at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137) ~[mybatis-3.4.5.jar:3.4.5]at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75) ~[mybatis-3.4.5.jar:3.4.5]at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59) ~[mybatis-3.4.5.jar:3.4.5]at com.sun.proxy.$Proxy80.select(Unknown Source) ~[na:na]at com.ec.api.cart.service.CartServiceImpl.findCartListByUserId(CartServiceImpl.java:25) ~[classes/:na]at com.alibaba.dubbo.common.bytecode.Wrapper1.invokeMethod(Wrapper1.java) ~[dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:45) ~[dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:71) ~[dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.config.invoker.DelegateProviderMetaDataInvoker.invoke(DelegateProviderMetaDataInvoker.java:48) ~[dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:52) ~[dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:61) ~[dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:68) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:74) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:68) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:41) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:68) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:77) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:68) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:71) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:68) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:131) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:68) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:37) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:68) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:37) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:68) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:98) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:96) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:168) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:50) [dubbo-2.6.0.jar:2.6.0]at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:79) [dubbo-2.6.0.jar:2.6.0]at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_181]at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_181]at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]
Caused by: org.apache.ibatis.builder.BuilderException: Error invoking SqlProvider method (com.ec.common.mapper.SysMapperProvider.dynamicSQL).  Cause: java.lang.InstantiationException: com.ec.common.mapper.SysMapperProviderat org.apache.ibatis.builder.annotation.ProviderSqlSource.createSqlSource(ProviderSqlSource.java:135) ~[mybatis-3.4.5.jar:3.4.5]at org.apache.ibatis.builder.annotation.ProviderSqlSource.getBoundSql(ProviderSqlSource.java:103) ~[mybatis-3.4.5.jar:3.4.5]at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:292) ~[mybatis-3.4.5.jar:3.4.5]at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:83) ~[pagehelper-5.0.4.jar:na]at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) ~[mybatis-3.4.5.jar:3.4.5]at com.sun.proxy.$Proxy114.query(Unknown Source) ~[na:na]at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148) ~[mybatis-3.4.5.jar:3.4.5]at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141) ~[mybatis-3.4.5.jar:3.4.5]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433) ~[mybatis-spring-1.3.1.jar:1.3.1]... 36 common frames omitted
Caused by: java.lang.InstantiationException: com.ec.common.mapper.SysMapperProviderat java.lang.Class.newInstance(Class.java:427) ~[na:1.8.0_181]at org.apache.ibatis.builder.annotation.ProviderSqlSource.createSqlSource(ProviderSqlSource.java:117) ~[mybatis-3.4.5.jar:3.4.5]... 48 common frames omitted
Caused by: java.lang.NoSuchMethodException: com.ec.common.mapper.SysMapperProvider.<init>()at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_181]at java.lang.Class.newInstance(Class.java:412) ~[na:1.8.0_181]... 49 common frames omitted

com.github.abel533.mapper插件使用报错,求助!!!相关推荐

  1. 【arduino】ESP32 SPIFFS插件使用报错及解决方法:SPIFFS Error:esptool not found!

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 最近在玩esp32,过程中出现一些问题,将问题和解决方法记录一下,供大家参考,希望大家 ...

  2. idea GsonFormat插件使用报错 StringIndexOutOfBoundsException: begin 0, end -1, length 9

    报错 报错日志: 原因 需要转换成的实体类文件是在IDEA项目的默认文件目录下. 解决 在原来IDEA默认目录下创建一个来放实体类的包. 例如:创建一个bean目录,并在其目录下创建一个User实体类 ...

  3. git使用报错:fatal: Couldn't find remote ref master的解决方法

    git使用报错:fatal: Couldn't find remote ref master的解决方法 fatal: Couldn't find remote ref master 翻译过来就是:致命 ...

  4. 记录webpack使用问题,使用报错“UnhandledPromiseRejectionWarning,file-loader图片过大,无法加载图片,打包html文件报错TypeError

    记录webpack使用报错 版本号问题 运行npm run build,报错 "UnhandledPromiseRejectionWarning: TypeError: this.getRe ...

  5. Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案

    Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案 参考文章: (1)Assets.car 解压工具 cartool 使用报错 s ...

  6. “this”不能在常量表达式中使用报错的解决方法

    "this"不能在常量表达式中使用报错的解决方法 问题描述与思考 在用C++书写下面一段代码时,编译器报错"'this'不能在常量表达式中使用".在这里,我最开 ...

  7. CentOS系统yum源使用报错:Error: Cannot retrieve repository metadata

    服务器上的yum突然不好使用,使用yum的时候报错如下: [root@bastion-IDC src]# yum list ...... Could not retrieve mirrorlist h ...

  8. Python安装xlrd和xlwt的步骤以及使用报错的解决方法

    Python安装xlrd和xlwt的步骤以及使用报错的解决方法 参考文章: (1)Python安装xlrd和xlwt的步骤以及使用报错的解决方法 (2)https://www.cnblogs.com/ ...

  9. git使用报错: fatal: Couldn‘t find remote ref master的解决方法

    git使用报错: fatal: Couldn't find remote ref master的解决方法 参考文章: (1)git使用报错: fatal: Couldn't find remote r ...

最新文章

  1. mysql Decimal(M,D)解释
  2. rdesktop 登录腾讯云
  3. 请立即弃用 Notepad++,还有 5 款更牛逼的选择!
  4. 【Python3 爬虫】03_urllib.error异常处理
  5. 配置MySQL以进行ADF开发
  6. 深入理解Flask中的上下文
  7. 设置html按钮点击事件无效果,css怎么设置按钮不能点击?
  8. 微软超级麻将AI Suphx论文发布,研发团队深度揭秘技术细节
  9. 数字人民币在京东累计交易金额超2.2亿
  10. Codeforces Round #519 by Botan Investments翻车记
  11. .net5 不支持winform_昨晚实操一波.NET5,极致性能简直逆天!
  12. (笔记)Mysql命令create table:创建数据表
  13. 二十五、JAVA多线程(三、线程同步)
  14. 排序的概念及分类实现
  15. 2018年国内外信息安全相关大事件
  16. 数据结构题及c语言版 答案,数据结构(C语言版)1800道题及答案[完整版]
  17. django mysql内存泄漏_Django ORM性能优化,数据存取优化
  18. 举个栗子!Tableau技巧(9):Lisa教你巧妙制作混合地图
  19. 使用Quantlib,通过YTM计算债券净值
  20. 意外险、医疗险、重疾险、寿险的主要保障功能和提示

热门文章

  1. Elixir-Pattern matching
  2. 2021年全球切削刀具市场销售额达到了244.5亿美元,预计2028年将达到321亿美元
  3. 鸿海集团董事长郭台铭:数字经济是中国制造2025的根基
  4. 【音视频数据数据处理 12】【H.264篇】解析H.264原始码流中的I帧 / P帧 / B帧数据(暂未解决,本文先放着,来日更新)
  5. 洛谷 P4324 [JSOI2016]扭动的回文串 manacher+字符串hash
  6. Conflux 进阶课 | 初始阶段通证发行数量
  7. HTML进阶(2)- 在页面中使用flash
  8. 深入理解grpc(二):grpc原理
  9. WebRTC基础实践 - 5.通过RTCPeerConnection传输流媒体视频
  10. Android Studio 自定义View命名空间报错的解决方法