nbcio-boot升级springboot、mybatis-plus和JSQLParser后出现新增online表单的时候报错,如下:
2023-08-13 21:18:01.292 [http-nio-8080-exec-12] [1;31mERROR[0;39m [36mo.jeecg.common.exception.JeecgBootExceptionHandler:69[0;39m - Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.jeecg.common.util.dynamic.db.DbTypeUtils.dbTypeIsSqlServer (Lcom/baomidou/mybatisplus/annotation/DbType;)Z org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.jeecg.common.util.dynamic.db.DbTypeUtils.dbTypeIsSqlServer(Lcom/baomidou/mybatisplus/annotation/DbType;)Z at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1087) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) at javax.servlet.http.HttpServlet.service(HttpServlet.java:528) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:596) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:458) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:373) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:370) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NoSuchMethodError: org.jeecg.common.util.dynamic.db.DbTypeUtils.dbTypeIsSqlServer(Lcom/baomidou/mybatisplus/annotation/DbType;)Z at org.jeecg.modules.online.config.d.e.a(DbTableUtil.java:260) at org.jeecg.modules.online.config.d.e.a(DbTableUtil.java:223) at org.jeecg.modules.online.cgform.c.a.a(OnlCgformApiController.java:118) at org.jeecg.modules.online.cgform.c.a$$FastClassBySpringCGLIB$$b70991a.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) at org.jeecg.modules.online.cgform.c.a$$EnhancerBySpringCGLIB$$3c4f7e63.a(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) ... 72 common frames omitted
看跟org.jeecg.common.util.dynamic.db.DbTypeUtils.dbTypeIsSqlServer相关
修改DbTypeUtils文件如下后修改这个bug:
package org.jeecg.common.util.dynamic.db; import com.baomidou.mybatisplus.annotation.DbType; import org.jeecg.common.constant.DataBaseConstant; import java.util.HashMap; import java.util.Map; /** * 数据库类型判断 * 【有些数据库引擎是一样的,以达到复用目的】 */ public class DbTypeUtils { public static Map<String, String> dialectMap = new HashMap<String, String>(); static{ dialectMap.put("mysql", "org.hibernate.dialect.MySQL5InnoDBDialect"); // mariadb数据库 1 -- dialectMap.put("mariadb", "org.hibernate.dialect.MariaDBDialect"); //oracle数据库 1 dialectMap.put("oracle", "org.hibernate.dialect.OracleDialect"); // TODO 没找到不确定 dialectMap.put("oracle12c", "org.hibernate.dialect.OracleDialect"); // db2数据库 1xx dialectMap.put("db2", "org.hibernate.dialect.DB2390Dialect"); // H2数据库 dialectMap.put("h2", "org.hibernate.dialect.HSQLDialect"); // HSQL数据库 1 dialectMap.put("hsql", "org.hibernate.dialect.HSQLDialect"); //SQLite数据库 应用平台mobile dialectMap.put("sqlite", "org.jeecg.modules.online.config.dialect.SQLiteDialect"); //PostgreSQL数据库1 -- dialectMap.put("postgresql", "org.hibernate.dialect.PostgreSQLDialect"); dialectMap.put("sqlserver2005", "org.hibernate.dialect.SQLServer2005Dialect"); //sqlserver数据库1 dialectMap.put("sqlserver", "org.hibernate.dialect.SQLServerDialect"); //达梦数据库 [国产] 1-- dialectMap.put("dm", "org.hibernate.dialect.DmDialect"); //虚谷数据库 dialectMap.put("xugu", "org.hibernate.dialect.HSQLDialect"); //人大金仓 [国产] 1 dialectMap.put("kingbasees", "org.hibernate.dialect.PostgreSQLDialect"); // Phoenix HBase数据库 dialectMap.put("phoenix", "org.hibernate.dialect.HSQLDialect"); // Gauss 数据库 dialectMap.put("zenith", "org.hibernate.dialect.PostgreSQLDialect"); //阿里云PolarDB dialectMap.put("clickhouse", "org.hibernate.dialect.MySQLDialect"); // 南大通用数据库 TODO 没找到不确定 dialectMap.put("gbase", "org.hibernate.dialect.PostgreSQLDialect"); //神通数据库 [国产] TODO 没找到不确定 dialectMap.put("oscar", "org.hibernate.dialect.PostgreSQLDialect"); //Sybase ASE 数据库 dialectMap.put("sybase", "org.hibernate.dialect.SybaseDialect"); dialectMap.put("oceanbase", "org.hibernate.dialect.PostgreSQLDialect"); dialectMap.put("Firebird", "org.hibernate.dialect.FirebirdDialect"); //瀚高数据库 dialectMap.put("highgo", "org.hibernate.dialect.HSQLDialect"); dialectMap.put("other", "org.hibernate.dialect.PostgreSQLDialect"); } public static boolean dbTypeIsMySql(DbType dbType) { return dbTypeIf(dbType, DbType.MYSQL, DbType.MARIADB, DbType.CLICK_HOUSE, DbType.SQLITE); } public static boolean dbTypeIsOracle(DbType dbType) { return dbTypeIf(dbType, DbType.ORACLE, DbType.ORACLE_12C, DbType.DM); } public static boolean dbTypeIsSqlServer(DbType dbType) { return dbTypeIf(dbType, DbType.SQL_SERVER, DbType.SQL_SERVER2005); } public static boolean dbTypeIsPostgre(DbType dbType) { return dbTypeIf(dbType, DbType.POSTGRE_SQL, DbType.KINGBASE_ES, DbType.GAUSS); } /** * 根据枚举类 获取数据库类型的字符串 * @param dbType * @return */ public static String getDbTypeString(DbType dbType){ if(DbType.DB2.equals(dbType)){ return DataBaseConstant.DB_TYPE_DB2; }else if(DbType.HSQL.equals(dbType)){ return DataBaseConstant.DB_TYPE_HSQL; }else if(dbTypeIsOracle(dbType)){ return DataBaseConstant.DB_TYPE_ORACLE; }else if(dbTypeIsSqlServer(dbType)){ return DataBaseConstant.DB_TYPE_SQLSERVER; }else if(dbTypeIsPostgre(dbType)){ return DataBaseConstant.DB_TYPE_POSTGRESQL; } return DataBaseConstant.DB_TYPE_MYSQL; } /** * 根据枚举类 获取数据库方言字符串 * @param dbType * @return */ public static String getDbDialect(DbType dbType){ return dialectMap.get(dbType.getDb()); } /** * 判断数据库类型 */ public static boolean dbTypeIf(DbType dbType, DbType... correctTypes) { for (DbType type : correctTypes) { if (type.equals(dbType)) { return true; } } return false; } }