From 4b77159ce4f144636749e2e6eacaf8e195493e36 Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Wed, 12 Jun 2024 15:41:45 +0800 Subject: [PATCH] =?UTF-8?q?fix()=EF=BC=9A=E4=BB=A3=E7=A0=81=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/vehicleSimulationDataBaseFile.mv.db | Bin 278528 -> 274432 bytes db/vehicleSimulationDataBaseFile.trace.db | 1432 +++++++++++++++++ .../com/muyu/vehicle/api/ClientAdmin.java | 14 +- .../web/domain/model/MqttServerModel.java | 8 + .../com/muyu/web/domain/model/TaskModel.java | 2 +- .../impl/VehicleInstanceServiceImpl.java | 17 +- 6 files changed, 1455 insertions(+), 18 deletions(-) diff --git a/db/vehicleSimulationDataBaseFile.mv.db b/db/vehicleSimulationDataBaseFile.mv.db index b410c82a3a3e52df2bce4b6e164e90d174a14306..ec5f81571ba6ac2de35d3b9751172ba5deda4fb7 100644 GIT binary patch delta 10387 zcmeHNdvF!i8Q)iKZbBdl4?z$}K*GaoID7VaZ#y}}9I8^H>?4G+TAW3)xq}G`m zI@5<8J1VQacGOloDY=oooSh>eQRfI>9^o4al(k@6i= z+s2S`!C&X~kk#JCQqeOFTl2j7UC#F!gMT*;KR3R`Nnbj-ZWY{^KYpFpRZEItiMXRV6de(G$rK0YbMo}$n@iuN+)7=G5 z7kau$$?#F&v|L`Q7X)#K_=+$>6hxtQOtV_V?W$?FV*|Hit)-m)L8ceUSZp{|&3J4`OO%2h}5*kSru|P9-ux%y|sb(Bx90l1jv0d)tkvGsI!aSN4 z1-?jKQp?2m3f+WkUhi~~FO`smkY?`?<0a(=FV3GO8D@17QYLvCCiLYo$-cV-lh58g znq7@}_P__bX((J43QNmARsBAHA_*ogA6K#a#6ZukHPwT2bg}7rJT(SiZPYu%#AzS~ z@h1*M6bHiM;1r9gLlxLpqS~No^oDw|Xy|-^FwwOJjm8}5mQ}R*z(hrzz<^#8{hOJb z(KW=cF+I;AMtsJ?WrtXNpnE8~2KLOj=pGPdBnWb^AQYAe^i#bvcuQLzteW<->h1HS zrNNQu=hq2B{gL4hNm6U@FK=4D)^^LV6r5mT+w9t+Thwe<4YsyjlXpE!*L~Lyj+xWO z6UVZ3t6a>N%eHAdNY8s%)v&FayWee_Ck7j4Zr&Z*M$LsBSoms9XEB2^o?FDeitMU` zq-DXe*|n>P7hj;U)t#L_-HB(gp&|u*hcT+3A^~KiKyp1de83YSLZf9l$%fE3aV{qoQHLf#n&lXXG^t+m2z`!DMw>vrcU68f8Ck7+TpWs%o_~ zNAhZ2-6y!LR_~i5U04T?Kql5LfA>M>sQA-)(nR@_$c5+UcCY%(U1IR-PBKGoYrahu z#|t$;fZH+s*66p9i~eF*%-F%3?GIEZjZ&_w?jNO0uiiXLnIsXndM~rPU+B0)yx6cL z!xn^^5lssep_ykS*NgLy>+?i3ki$CsluJ46NY2?@zHo3=#7b+$h*rYZlIn8WWb|cC z*r(`X=&Fi2q18-P*HTg!@!R9D$&}y1Gb0wSTE3crKh^)SNY0_PiR;IU(_)OETs>k+ z6S!~KBt=fM)tC=pKjNB}iXAoK13FL??gu2(k9W&wZV_AeGk*E-LDsiLGJ@4jpB(WY zmLdK@W!dyfOeIc})@RuD30OViD}*?l&sCkV$`tNIk`FOoAu2C0crqH4_S+<_0x}hl zlkyseP6c2?W+IRpxs;>DYoAJ^at14np=9LB86ozpPSbr|1zs=oLK2?GY=ogO1`GuY zJoYLJ5tENjkVX<*Zo_e$qv4^00)LMvqtu z>^mp624TyU7uCqhQ{oA+3v;A0_<_j}EQ(!~2V&BeVpp8QcvTE=l;v?6OKzu$Y{^2s zs6ng5ALb4v0x1wI6n&sMgmLlFKC_qxuk5 z8Y^&eAlqeg4qKR2&1OG61F_BR8)@BTSdfMX7V)Wb;AiBVWtFqL8IOE~lW&8=eN-@Y z@`A~YU9kI=ekxOm3^T3UZNoIpOa?M+Qyu7$k%WsF3}0LlbWa^qPt4c>TCs5lK-*w3 z7~lYlfkCnkq)&`;jb)(YIAEp@fc6pzS!F$PppICv1AQRY!h<=$gq5svk$qyE?2e-` zS*ZgSbHF3nIk6(RLzM);^@cd#GaZ9vS*kVIaE5xJx*qDMW5j1LDibaKH`8$q+u#Gw zF>EUySjcganG9U7jFz%uqi_j@HDT_Geo9%o`(Pu|Fd{qq7HYDv)V^Vjl%cJqWL|mV z;_@TiEeOHdPNg2*xRzaAWYBile;)?~P*Re*NLAYlq3~CTkBKqBpr=A4CXly6(2o z)OKz=JZ{XmiRY>dKn!~Ohu7r8eILqi%JL4SF1+_6d5J9VT2LRpe@uQ>mVaUn3-`&& zt;(c*UPD9dUDw`M>5aNC-OlXME33bqF3pzr`oqJ<8Imo@PhK!0e5GFbhE%(MbYnxC zfT{AC~RaZ7C3(Xx*|Die2x>38{{i-{6o02$f~$X-b21nyiRe z`UMouZY3xZR&O2-4Gfo8uts&8AptLCE&=HWRA7Atu6bi1J5U`MuA1&_O()1mclO7- z6BoASBKVj(6jcYB581wvRW7{kp$A8%BtAunHui{dWbCsX2BK|Ju0#%TEga&LEvho{ zNwq(hX-GOWRZ@45nk7e-b*uptH4SjmGdR9-^S@$8rOXso24P2$S{^5sh&m5B%bYA6 zR!*2^pm`L*;ZejQ)~Yy<*eDF{UND4>koA*_ES2ewyO|HR8e^w}_Lbog$KaLZ!K8tuVA2z~a_ zhI_J6_zb`V07hO;Me}Q!XpTFWXbx69JietRE1G{Lcb_P=fM`DFbd~X7N%@`NKO`SE z&X-0=eI)X)4IeAPLx$WgZa!g``21YhbcOVgD2-hbKE7DGI46x87JRwq_cPCZyM~f^ zc+cFTqk;goZ6~vr{Az7N=I`DTHm#7pxlI~>UU={8(&}F6aS~Q;6npR29$!{RnLJ$C z^#L$6gV87GCd5qz^SIpvm39+Evitdt?c!$*1AeI? z2+B2YpfPEC`#8;nM3769@!8u$*eQ~+eR~MH$~Nj*&_wt&3)3HQCDPOXEel6_%ph5< z!hd>mW`3^IH>>pyRP`%|$J4?@xe;W3C`@v7i)aCon+HXM6r&?pijH6b9ccm5b@Ug^ zM%V`h2*p0I6#Kve_R;!d<8Pi}Hi9#_C51DvJ(B?|p&psga|CoZC`fw#-XuhV(dLx^ ip77Z+1KJC(iXa%x$n>SMG$QFQ5RLen>9DjZ*8dl0O$zz| delta 10194 zcmeI2e{fXQ702(py9o(|ga{FmNCXlRzy;oq`+hA>4Ooz>t%;@(ECO%edn*VeF+Ut} zY&WgbVLDo?JY=ymPIX4>jIAw{KbFzXRL53nt0LC1PG_ubo&Hg4TWvdStz+$Z_r81I zOLikaMC?pmX7;?x+kN-s{`j8HId{i@Gi!Xjv3-43&E$3sx;wKPv)Amn#m_3TEN9&9 zV*@+0cJA)>&L%sT$?x(<-R=Hx*2}{_Xhl% zN3%vWkUAeoHjbv@LGN@RbH9Z6i3UEG_Vkb5X};^v8>i z!&#DLT~2hI=t(T9vPm=Ijt$mvo+L&>HYKG_)eH3Ln&asNTC^dnF45{#x;$jf%Gnlg z=!!>N_!wK*@G(Q&(M_3u$MEvLt4DWC#rIv4H?%wv-!X}7De_i?FhVG^4&LCkrtb`& zgOKzDJZ24h963gxhI(EKdNV5yY{0MAB2;s*z7gY=qO%b%F5bBjuMGaywW-Bby`19f zu*EFfuv}Y)3oqx}re3qST>ZfEXivtfk=Xe{p?sfsww+Tz1FjCA;J#Ru+>w`nx)k_-?mL!BaVd(S&)Jprl+1grT$)+Rg zu8L6AXq7GD*5YeDcy*wz?kH~U#a{8*UVIS@%yJmn&Lf-GJTC29cTMTJK72k7$N8`I z?HIl?VVsLg`f*2TOFv%2N3^4wk7(VOE03thM${K0`hM}b&U72Lo#LOE4eq?At2DDK zeYd1(9@cz>Quj3ON++b#uN zSPTU87p*uYl0<_^qU!3PFCxCVo{+>a+_@E0+KwHvBV{s^?kJD)DRDBnV0hCKthvEe z9c=~GU}8AAOWp^FAzSlhQ;`@0hjytu6T1w>kZmE&%`2dVtPyD;9c&q*si%V&vX-vp z<;h|g-7zf}#E>=&UzIHoL)tJ^MYcc;S%WBs3<4T8RNIq5w8lZiE@d{{k24%;)QrYrDc-+{B8KP=y$7Jl(XdoW>PstIZP>gGV}=L!C*QBKk|@B+$sFE zvH>gI+S1&dB%7A1EfQ`HUh8fuzSo1>Io(_ke0}vLlL@C75>62ar>68yAAUm$G3Qe= zH)Gt)FsHZ?cb*bX3Y7FyHSea593A>}b!rYu2k+nXy4uzBhpJi(JO#FWaGl=Qdj4Td*)Om zbDMFbGnpeTlX0YFCOOi^nge5T?=Sz=6mz7-6K+dzBqR!9&0&SDP>yW*egrKRPb`TY zE%89v&|1)}C=(|@@GQ{1RgJE!AQgqxCj%$8!Tb64iMU!yv06aF|`mmS;ieAXMyL^74z?iTh2=UjVdB%;no(=7hulY z4}t|XntvrE*4?OTV~W{OouEzC2`s1+w4Xq`|ML@SsoFrBs!eD^wE+ui16vEB8~^+a zwNyQzP1OS|s0aLiH!6($9SQ=eaWq;p3x)7IIx+_=LSq;2=UarBO3vZw4%A=59V17p zGoA)3u3f=pI1Q#Xf&5Lr1T0at(lWsp(9+g27sv?khkNtU>&|8{T0)uyw%h=&EhO+Mx}@^ArN9 z2W^;&s}M*%SOc;o7gCR?;W;)>JvOsx-!hL*d%EzKXX!jwExnCdEu3eV_XEtXJru43 znD-NFnSB-J584AS!*qr7{>V$z4&4X2OgQgPUdHT8`=}juucmgS8a@y6KJxU_V8_wO zukM1$?nX04*TMtgHP$fiuw$iZ&Jz+Lo3ia$HtbE8&(hot!G1`FV3}j&5!459& zWA@)LztA3f^W`LM922y$RnW#`oHicfv~lbJqYe1}a63>&Xnz3f2kgk_`y$#{E@|w!L@B+`XyZ(PnpI6$MY&QTDN)Z#Aa^3Bg|wlCw9&v$V}zm>dsfGlBwFZa1jJ#3 z6`sjd75-CliHYmvdVgM|;zlj6YY|2p(Yej3mpzi>1IIXJMW&Nh+>@n7MjPrmt2NRB zR~Rr%ViPYcaEa&<(gtgNJO!@8-fLOdd95#aHY+gyr7w zIOSSf)Uzv`+QPEu$=J!N+M+X2vxY8utm#mYU6&p}i7I7zaWYnKF5?!J@#gRG{3C`M zdb0fStN6FeR9uTvMy8wRR>eiiXz-L#|9=#55zNY&w!qKWRnv!TC2X-nc133gh-}(U zk9W&LoE0b32?P!ipum3$0AWRyKOowCM8T$|;&BRycxFS;d(o=+4EU^|bZ~U&$19@a z-Gsg*G(rec&h~O%-U&;fRFLLD4TYWW5^cgMOnAhVnfi!JJX;)K!4ubahx+r6^s5Lp zic^wP(jP8F#kacgRiEfk^m`mJ$WzedCpr}V+UJ7~u0L)anma*oKgy<4Z(>u1MIgjXI%#qvL?2X6aNy=RdP9B&Ql$frvDd$ C8fKIL diff --git a/db/vehicleSimulationDataBaseFile.trace.db b/db/vehicleSimulationDataBaseFile.trace.db index 4ec48f9..5d8338f 100644 --- a/db/vehicleSimulationDataBaseFile.trace.db +++ b/db/vehicleSimulationDataBaseFile.trace.db @@ -81,3 +81,1435 @@ org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed ( 2024-06-11 15:24:37 jdbc[3]: exception org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]\feffcreate table if not exists vehicle ( `vin` char (17) primary key not null, `remaining_battery` DOUBLE not null, `total_mileage` DOUBLE not null, `battery_level` DOUBLE not null, `create_time` datetime not null ) "; SQL statement: create table if not exists vehicle ( `vin` char (17) primary key not null, `remaining_battery` DOUBLE not null, `total_mileage` DOUBLE not null, `battery_level` DOUBLE not null, `create_time` datetime not null ) [42000-214] +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.clearWarnings(JdbcConnection.java:610) + at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:267) + at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:407) + at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:394) + at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:361) + at org.mybatis.spring.transaction.SpringManagedTransaction.close(SpringManagedTransaction.java:115) + at org.apache.ibatis.executor.BaseExecutor.close(BaseExecutor.java:90) + at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64) + at jdk.proxy2/jdk.proxy2.$Proxy81.close(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.close(DefaultSqlSession.java:260) + at org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:195) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:449) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getAutoCommit(JdbcConnection.java:423) + at com.zaxxer.hikari.pool.HikariProxyConnection.getAutoCommit(HikariProxyConnection.java) + at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:81) + at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) + at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337) + at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86) + at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49) + at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) + at jdk.internal.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49) + at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62) + at jdk.proxy2/jdk.proxy2.$Proxy81.update(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194) + at jdk.internal.reflect.GeneratedMethodAccessor75.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:463) + at com.zaxxer.hikari.pool.ProxyConnection.rollback(ProxyConnection.java:396) + at com.zaxxer.hikari.pool.HikariProxyConnection.rollback(HikariProxyConnection.java) + at org.mybatis.spring.transaction.SpringManagedTransaction.rollback(SpringManagedTransaction.java:106) + at org.apache.ibatis.executor.BaseExecutor.rollback(BaseExecutor.java:256) + at org.apache.ibatis.executor.BaseExecutor.close(BaseExecutor.java:87) + at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64) + at jdk.proxy2/jdk.proxy2.$Proxy81.close(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.close(DefaultSqlSession.java:260) + at org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:195) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:438) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.clearWarnings(JdbcConnection.java:610) + at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:267) + at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:407) + at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:394) + at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:361) + at org.mybatis.spring.transaction.SpringManagedTransaction.close(SpringManagedTransaction.java:115) + at org.apache.ibatis.executor.BaseExecutor.close(BaseExecutor.java:90) + at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64) + at jdk.proxy2/jdk.proxy2.$Proxy81.close(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.close(DefaultSqlSession.java:260) + at org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:195) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:438) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getMetaData(JdbcConnection.java:306) + at com.zaxxer.hikari.pool.ProxyConnection.getMetaData(ProxyConnection.java:380) + at com.zaxxer.hikari.pool.HikariProxyConnection.getMetaData(HikariProxyConnection.java) + at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:340) + at org.springframework.jdbc.support.SQLErrorCodesFactory.resolveErrorCodes(SQLErrorCodesFactory.java:235) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.lambda$setDataSource$0(SQLErrorCodeSQLExceptionTranslator.java:140) + at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:141) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.(SQLErrorCodeSQLExceptionTranslator.java:102) + at org.mybatis.spring.MyBatisExceptionTranslator.lambda$new$0(MyBatisExceptionTranslator.java:55) + at org.mybatis.spring.MyBatisExceptionTranslator.initExceptionTranslator(MyBatisExceptionTranslator.java:106) + at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.clearWarnings(JdbcConnection.java:610) + at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:267) + at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:407) + at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:394) + at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:361) + at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:373) + at org.springframework.jdbc.support.SQLErrorCodesFactory.resolveErrorCodes(SQLErrorCodesFactory.java:235) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.lambda$setDataSource$0(SQLErrorCodeSQLExceptionTranslator.java:140) + at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:141) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.(SQLErrorCodeSQLExceptionTranslator.java:102) + at org.mybatis.spring.MyBatisExceptionTranslator.lambda$new$0(MyBatisExceptionTranslator.java:55) + at org.mybatis.spring.MyBatisExceptionTranslator.initExceptionTranslator(MyBatisExceptionTranslator.java:106) + at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getMetaData(JdbcConnection.java:306) + at com.zaxxer.hikari.pool.ProxyConnection.getMetaData(ProxyConnection.java:380) + at com.zaxxer.hikari.pool.HikariProxyConnection.getMetaData(HikariProxyConnection.java) + at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:340) + at org.springframework.jdbc.support.SQLErrorCodesFactory.resolveErrorCodes(SQLErrorCodesFactory.java:235) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.lambda$setDataSource$0(SQLErrorCodeSQLExceptionTranslator.java:140) + at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) + at org.springframework.util.function.SupplierUtils.resolve(SupplierUtils.java:40) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.getSqlErrorCodes(SQLErrorCodeSQLExceptionTranslator.java:171) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:193) + at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) + at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.clearWarnings(JdbcConnection.java:610) + at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:267) + at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:407) + at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:394) + at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:361) + at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:373) + at org.springframework.jdbc.support.SQLErrorCodesFactory.resolveErrorCodes(SQLErrorCodesFactory.java:235) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.lambda$setDataSource$0(SQLErrorCodeSQLExceptionTranslator.java:140) + at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) + at org.springframework.util.function.SupplierUtils.resolve(SupplierUtils.java:40) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.getSqlErrorCodes(SQLErrorCodeSQLExceptionTranslator.java:171) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:193) + at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) + at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getAutoCommit(JdbcConnection.java:423) + at com.zaxxer.hikari.pool.HikariProxyConnection.getAutoCommit(HikariProxyConnection.java) + at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:81) + at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) + at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337) + at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86) + at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49) + at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) + at jdk.internal.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49) + at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62) + at jdk.proxy2/jdk.proxy2.$Proxy81.update(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194) + at jdk.internal.reflect.GeneratedMethodAccessor75.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:463) + at com.zaxxer.hikari.pool.ProxyConnection.rollback(ProxyConnection.java:396) + at com.zaxxer.hikari.pool.HikariProxyConnection.rollback(HikariProxyConnection.java) + at org.mybatis.spring.transaction.SpringManagedTransaction.rollback(SpringManagedTransaction.java:106) + at org.apache.ibatis.executor.BaseExecutor.rollback(BaseExecutor.java:256) + at org.apache.ibatis.executor.BaseExecutor.close(BaseExecutor.java:87) + at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64) + at jdk.proxy2/jdk.proxy2.$Proxy81.close(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.close(DefaultSqlSession.java:260) + at org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:195) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:438) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.clearWarnings(JdbcConnection.java:610) + at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:267) + at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:407) + at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:394) + at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:361) + at org.mybatis.spring.transaction.SpringManagedTransaction.close(SpringManagedTransaction.java:115) + at org.apache.ibatis.executor.BaseExecutor.close(BaseExecutor.java:90) + at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64) + at jdk.proxy2/jdk.proxy2.$Proxy81.close(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.close(DefaultSqlSession.java:260) + at org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:195) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:438) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getMetaData(JdbcConnection.java:306) + at com.zaxxer.hikari.pool.ProxyConnection.getMetaData(ProxyConnection.java:380) + at com.zaxxer.hikari.pool.HikariProxyConnection.getMetaData(HikariProxyConnection.java) + at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:340) + at org.springframework.jdbc.support.SQLErrorCodesFactory.resolveErrorCodes(SQLErrorCodesFactory.java:235) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.lambda$setDataSource$0(SQLErrorCodeSQLExceptionTranslator.java:140) + at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) + at org.springframework.util.function.SupplierUtils.resolve(SupplierUtils.java:40) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.getSqlErrorCodes(SQLErrorCodeSQLExceptionTranslator.java:171) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:193) + at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) + at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.clearWarnings(JdbcConnection.java:610) + at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:267) + at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:407) + at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:394) + at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:361) + at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:373) + at org.springframework.jdbc.support.SQLErrorCodesFactory.resolveErrorCodes(SQLErrorCodesFactory.java:235) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.lambda$setDataSource$0(SQLErrorCodeSQLExceptionTranslator.java:140) + at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) + at org.springframework.util.function.SupplierUtils.resolve(SupplierUtils.java:40) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.getSqlErrorCodes(SQLErrorCodeSQLExceptionTranslator.java:171) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:193) + at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) + at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getAutoCommit(JdbcConnection.java:423) + at com.zaxxer.hikari.pool.HikariProxyConnection.getAutoCommit(HikariProxyConnection.java) + at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:81) + at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) + at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337) + at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86) + at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49) + at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) + at jdk.internal.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49) + at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62) + at jdk.proxy2/jdk.proxy2.$Proxy81.update(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194) + at jdk.internal.reflect.GeneratedMethodAccessor75.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:463) + at com.zaxxer.hikari.pool.ProxyConnection.rollback(ProxyConnection.java:396) + at com.zaxxer.hikari.pool.HikariProxyConnection.rollback(HikariProxyConnection.java) + at org.mybatis.spring.transaction.SpringManagedTransaction.rollback(SpringManagedTransaction.java:106) + at org.apache.ibatis.executor.BaseExecutor.rollback(BaseExecutor.java:256) + at org.apache.ibatis.executor.BaseExecutor.close(BaseExecutor.java:87) + at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64) + at jdk.proxy2/jdk.proxy2.$Proxy81.close(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.close(DefaultSqlSession.java:260) + at org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:195) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:438) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.clearWarnings(JdbcConnection.java:610) + at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:267) + at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:407) + at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:394) + at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:361) + at org.mybatis.spring.transaction.SpringManagedTransaction.close(SpringManagedTransaction.java:115) + at org.apache.ibatis.executor.BaseExecutor.close(BaseExecutor.java:90) + at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64) + at jdk.proxy2/jdk.proxy2.$Proxy81.close(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.close(DefaultSqlSession.java:260) + at org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:195) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:438) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getMetaData(JdbcConnection.java:306) + at com.zaxxer.hikari.pool.ProxyConnection.getMetaData(ProxyConnection.java:380) + at com.zaxxer.hikari.pool.HikariProxyConnection.getMetaData(HikariProxyConnection.java) + at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:340) + at org.springframework.jdbc.support.SQLErrorCodesFactory.resolveErrorCodes(SQLErrorCodesFactory.java:235) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.lambda$setDataSource$0(SQLErrorCodeSQLExceptionTranslator.java:140) + at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) + at org.springframework.util.function.SupplierUtils.resolve(SupplierUtils.java:40) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.getSqlErrorCodes(SQLErrorCodeSQLExceptionTranslator.java:171) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:193) + at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) + at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.clearWarnings(JdbcConnection.java:610) + at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:267) + at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:407) + at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:394) + at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:361) + at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:373) + at org.springframework.jdbc.support.SQLErrorCodesFactory.resolveErrorCodes(SQLErrorCodesFactory.java:235) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.lambda$setDataSource$0(SQLErrorCodeSQLExceptionTranslator.java:140) + at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) + at org.springframework.util.function.SupplierUtils.resolve(SupplierUtils.java:40) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.getSqlErrorCodes(SQLErrorCodeSQLExceptionTranslator.java:171) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:193) + at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) + at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getAutoCommit(JdbcConnection.java:423) + at com.zaxxer.hikari.pool.HikariProxyConnection.getAutoCommit(HikariProxyConnection.java) + at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:81) + at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67) + at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337) + at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86) + at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49) + at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) + at jdk.internal.reflect.GeneratedMethodAccessor76.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49) + at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62) + at jdk.proxy2/jdk.proxy2.$Proxy81.update(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194) + at jdk.internal.reflect.GeneratedMethodAccessor75.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:463) + at com.zaxxer.hikari.pool.ProxyConnection.rollback(ProxyConnection.java:396) + at com.zaxxer.hikari.pool.HikariProxyConnection.rollback(HikariProxyConnection.java) + at org.mybatis.spring.transaction.SpringManagedTransaction.rollback(SpringManagedTransaction.java:106) + at org.apache.ibatis.executor.BaseExecutor.rollback(BaseExecutor.java:256) + at org.apache.ibatis.executor.BaseExecutor.close(BaseExecutor.java:87) + at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64) + at jdk.proxy2/jdk.proxy2.$Proxy81.close(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.close(DefaultSqlSession.java:260) + at org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:195) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:438) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.clearWarnings(JdbcConnection.java:610) + at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:267) + at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:407) + at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:394) + at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:361) + at org.mybatis.spring.transaction.SpringManagedTransaction.close(SpringManagedTransaction.java:115) + at org.apache.ibatis.executor.BaseExecutor.close(BaseExecutor.java:90) + at jdk.internal.reflect.GeneratedMethodAccessor69.invoke(Unknown Source) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64) + at jdk.proxy2/jdk.proxy2.$Proxy81.close(Unknown Source) + at org.apache.ibatis.session.defaults.DefaultSqlSession.close(DefaultSqlSession.java:260) + at org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:195) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:438) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.getMetaData(JdbcConnection.java:306) + at com.zaxxer.hikari.pool.ProxyConnection.getMetaData(ProxyConnection.java:380) + at com.zaxxer.hikari.pool.HikariProxyConnection.getMetaData(HikariProxyConnection.java) + at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:340) + at org.springframework.jdbc.support.SQLErrorCodesFactory.resolveErrorCodes(SQLErrorCodesFactory.java:235) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.lambda$setDataSource$0(SQLErrorCodeSQLExceptionTranslator.java:140) + at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) + at org.springframework.util.function.SupplierUtils.resolve(SupplierUtils.java:40) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.getSqlErrorCodes(SQLErrorCodeSQLExceptionTranslator.java:171) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:193) + at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) + at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) +2024-06-12 15:22:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbc.JdbcConnection.clearWarnings(JdbcConnection.java:610) + at com.zaxxer.hikari.pool.ProxyConnection.close(ProxyConnection.java:267) + at org.springframework.jdbc.datasource.DataSourceUtils.doCloseConnection(DataSourceUtils.java:407) + at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:394) + at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:361) + at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:373) + at org.springframework.jdbc.support.SQLErrorCodesFactory.resolveErrorCodes(SQLErrorCodesFactory.java:235) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.lambda$setDataSource$0(SQLErrorCodeSQLExceptionTranslator.java:140) + at org.springframework.util.function.SingletonSupplier.get(SingletonSupplier.java:97) + at org.springframework.util.function.SupplierUtils.resolve(SupplierUtils.java:40) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.getSqlErrorCodes(SQLErrorCodeSQLExceptionTranslator.java:171) + at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:193) + at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) + at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91) + at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) + at jdk.proxy2/jdk.proxy2.$Proxy69.update(Unknown Source) + at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy2/jdk.proxy2.$Proxy74.update(Unknown Source) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:258) + at com.baomidou.mybatisplus.extension.service.IService.update(IService.java:248) + at com.muyu.web.service.impl.VechileServiceImpl.lambda$syncDb$0(VechileServiceImpl.java:104) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at com.muyu.web.service.impl.VechileServiceImpl.syncDb(VechileServiceImpl.java:98) + at com.muyu.web.service.impl.VechileServiceImpl$$FastClassBySpringCGLIB$$b352945.invoke() + at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) + at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) + at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) + at com.muyu.web.service.impl.VechileServiceImpl$$EnhancerBySpringCGLIB$$c97faf4f.syncDb() + at com.muyu.vehicle.core.VehicleConfiguration.destroy(VehicleConfiguration.java:68) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) + at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.base/java.lang.reflect.Method.invoke(Method.java:568) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:347) + at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:177) + at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:197) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1163) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1156) + at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1109) + at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) + at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1024) + at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) + at java.base/java.lang.Thread.run(Thread.java:833) diff --git a/src/main/java/com/muyu/vehicle/api/ClientAdmin.java b/src/main/java/com/muyu/vehicle/api/ClientAdmin.java index 616e20d..69de3d9 100644 --- a/src/main/java/com/muyu/vehicle/api/ClientAdmin.java +++ b/src/main/java/com/muyu/vehicle/api/ClientAdmin.java @@ -1,12 +1,10 @@ package com.muyu.vehicle.api; -import com.dtflys.forest.annotation.BaseRequest; import com.dtflys.forest.annotation.JSONBody; import com.dtflys.forest.annotation.Post; -import com.muyu.web.common.Result; -import com.muyu.web.config.properties.ServiceConfigProperties; -import com.muyu.web.domain.model.MqttServerModel; import com.muyu.vehicle.api.req.VehicleConnectionReq; +import com.muyu.web.common.Result; +import com.muyu.web.domain.model.MqttServerModel; /** * @author DongZl @@ -17,12 +15,14 @@ public interface ClientAdmin { /** * 获取车辆负载地址 - * @param serviceConfigProperties 负载配置 * @param vehicleConnectionReq 请求信息 * @return 响应结果 */ @Post( - url = "{vehicleLoadUrl}" + url = "{vehicleLoadUrl}"/*, + headers = { + "X-co-il: DH5I9OIG+N==" + }*/ ) - public Result getVehicleLoadAddr (ServiceConfigProperties serviceConfigProperties, @JSONBody VehicleConnectionReq vehicleConnectionReq); + public Result getVehicleLoadAddr ( @JSONBody VehicleConnectionReq vehicleConnectionReq); } diff --git a/src/main/java/com/muyu/web/domain/model/MqttServerModel.java b/src/main/java/com/muyu/web/domain/model/MqttServerModel.java index bcfa466..57a93c5 100644 --- a/src/main/java/com/muyu/web/domain/model/MqttServerModel.java +++ b/src/main/java/com/muyu/web/domain/model/MqttServerModel.java @@ -4,6 +4,8 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author DongZl @@ -16,6 +18,7 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class MqttServerModel { + private static final Logger log = LoggerFactory.getLogger(MqttServerModel.class); /** * MQTT服务节点 */ @@ -25,4 +28,9 @@ public class MqttServerModel { * MQTT订阅主题 */ private String topic; + + public String getBroker () { + log.info("broker: {}", broker); + return broker.contains("tcp://") ? broker : "tcp://" + broker + ":1883"; + } } diff --git a/src/main/java/com/muyu/web/domain/model/TaskModel.java b/src/main/java/com/muyu/web/domain/model/TaskModel.java index e0b219c..33f2f06 100644 --- a/src/main/java/com/muyu/web/domain/model/TaskModel.java +++ b/src/main/java/com/muyu/web/domain/model/TaskModel.java @@ -119,7 +119,7 @@ public class TaskModel { new Thread(() -> { try { while (hashNext()){ - Thread.sleep(100); +// Thread.sleep(500); String vin = next(); try { consumer.accept(vin); diff --git a/src/main/java/com/muyu/web/service/impl/VehicleInstanceServiceImpl.java b/src/main/java/com/muyu/web/service/impl/VehicleInstanceServiceImpl.java index ec9ee59..9b2a026 100644 --- a/src/main/java/com/muyu/web/service/impl/VehicleInstanceServiceImpl.java +++ b/src/main/java/com/muyu/web/service/impl/VehicleInstanceServiceImpl.java @@ -1,8 +1,13 @@ package com.muyu.web.service.impl; +import com.muyu.vehicle.VehicleInstance; +import com.muyu.vehicle.api.ClientAdmin; +import com.muyu.vehicle.api.req.VehicleConnectionReq; +import com.muyu.vehicle.core.LocalContainer; +import com.muyu.vehicle.model.VehicleData; +import com.muyu.vehicle.model.properties.MqttProperties; import com.muyu.web.common.PageList; import com.muyu.web.common.Result; -import com.muyu.web.config.properties.ServiceConfigProperties; import com.muyu.web.domain.Vehicle; import com.muyu.web.domain.model.MqttServerModel; import com.muyu.web.domain.model.PositionModel; @@ -15,12 +20,6 @@ import com.muyu.web.service.PositionRouteService; import com.muyu.web.service.VehicleInstanceService; import com.muyu.web.utils.MD5Util; import com.muyu.web.utils.ReflectUtils; -import com.muyu.vehicle.VehicleInstance; -import com.muyu.vehicle.api.ClientAdmin; -import com.muyu.vehicle.api.req.VehicleConnectionReq; -import com.muyu.vehicle.core.LocalContainer; -import com.muyu.vehicle.model.VehicleData; -import com.muyu.vehicle.model.properties.MqttProperties; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -47,8 +46,6 @@ public class VehicleInstanceServiceImpl implements VehicleInstanceService { @Autowired private ClientAdmin clientAdmin; - @Autowired - private ServiceConfigProperties serviceConfigProperties; /** * 根据车辆生成车辆实例 @@ -116,7 +113,7 @@ public class VehicleInstanceServiceImpl implements VehicleInstanceService { .nonce(MD5Util.encrypted(UUID.randomUUID().toString().replace("-", ""))) .build(); // 从负载均衡服务器获取配置信息 - Result result = clientAdmin.getVehicleLoadAddr(serviceConfigProperties, connectionReq); + Result result = clientAdmin.getVehicleLoadAddr(connectionReq); if (result.getCode() != 200){ log.error("车辆:[{}],申请上线异常:[{}]", vin, result.getMsg()); throw new RuntimeException("远程服务器没有【"+vin+"】车辆");