Closed 90yangkang closed 2 months ago
supplement
There are two databases db1 and db2, both of which have the same datatable - table1.
db1.table1 execute command [show create table page_data_put] result:
CREATE TABLE page_data_put
(
id
BIGINT ( 20 ) NOT NULL COMMENT '主键',
page_data_version_id
BIGINT ( 20 ) DEFAULT NULL COMMENT '页面版本id',
name
VARCHAR ( 50 ) NOT NULL COMMENT '配置名称',
mark
VARCHAR ( 30 ) NOT NULL COMMENT '标识',
cos_path
VARCHAR ( 255 ) NOT NULL COMMENT 'cos配置地址',
create_by
VARCHAR ( 30 ) DEFAULT NULL COMMENT '创建者',
create_time
datetime ( 6 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 6 ) COMMENT '创建时间',
update_by
VARCHAR ( 30 ) DEFAULT NULL COMMENT '更新者',
update_time
datetime ( 6 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 6 ) ON UPDATE CURRENT_TIMESTAMP ( 6 ) COMMENT '更新时间',
delete_flag
CHAR ( 1 ) DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
business_source
VARCHAR ( 100 ) DEFAULT NULL COMMENT '业务来源,商城cms:mall',
scene_id
BIGINT ( 20 ) DEFAULT NULL COMMENT '投放场景id',
page_put_path
VARCHAR ( 250 ) DEFAULT NULL COMMENT '页面投放地址',
business_channel
VARCHAR ( 20 ) DEFAULT NULL COMMENT '业务渠道',
PRIMARY KEY ( id
) USING BTREE,
UNIQUE KEY UN_page_data_put_mark
( mark
) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4
db2.table1 execute command [show create table page_data_put] result:
CREATE TABLE page_data_put
(
id
bigint(20) NOT NULL COMMENT '主键',
scene_id
bigint(20) DEFAULT NULL COMMENT '投放场景id',
page_data_version_id
bigint(20) DEFAULT NULL COMMENT '投放使用的页面版本id',
name
varchar(50) NOT NULL COMMENT '配置名称',
mark
varchar(30) NOT NULL COMMENT '标识',
cos_path
varchar(255) NOT NULL COMMENT 'cos配置地址',
create_by
varchar(30) DEFAULT NULL COMMENT '创建者',
create_time
datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间',
update_by
varchar(30) DEFAULT NULL COMMENT '更新者',
update_time
datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间',
delete_flag
char(1) DEFAULT NULL COMMENT '删除标志 true/false 删除/未删除',
business_source
varchar(100) DEFAULT NULL COMMENT '业务来源,商城cms:mall',
page_put_path
varchar(250) DEFAULT NULL COMMENT '页面投放地址',
business_channel
varchar(20) DEFAULT NULL COMMENT '业务渠道',
PRIMARY KEY (id
) USING BTREE,
UNIQUE KEY UN_page_data_put_mark
(mark
) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
Hi @90yangkang
Please enable sql-show
to log Actual SQL, which can help us check whether the actual executed SQL statement is correct.
FYI:
props:
sql-show: true
@RaigorJiang Thanks for your reply . This is the Actual SQL after opening the configuration , log info :
JDBC Connection [HikariProxyConnection@227990916 wrapping org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection@a46c9fb] will not be managed by Spring
==> Preparing: / ShardingSphere hint: dataSourceName=haval_test / SELECT FROM page_data_put where mark = ?
==> Parameters: app(String)
09:16:31.228 [http-nio-8081-exec-2] INFO ShardingSphere-SQL - Logic SQL: / ShardingSphere hint: dataSourceName=haval_test / SELECT FROM page_data_put where mark = ?
09:16:31.228 [http-nio-8081-exec-2] INFO ShardingSphere-SQL - Actual SQL: haval_test ::: / ShardingSphere hint: dataSourceName=haval_test / SELECT * FROM page_data_put where mark = ? ::: [app]
<== Columns: id, page_data_version_id, name, mark, cos_path, create_by, create_time, update_by, update_time, delete_flag, business_source, scene_id, page_put_path, business_channel
<== Row: 1, 1650329764271161346, 品牌首页, app, mall_next/page_data/haval-test/app_index.json, lp, 2022-08-23 14:01:54, xyh01, 2023-04-24 10:44:15, 1, mall, 1612702987873218562, null, null
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@30a0ee8f]
09:16:31.604 [http-nio-8081-exec-2] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: Error attempting to get column 'create_time' from result set. Cause: java.sql.SQLDataException: Cannot convert string 'xyh01' to java.sql.Timestamp value
; Cannot convert string 'xyh01' to java.sql.Timestamp value; nested exception is java.sql.SQLDataException: Cannot convert string 'xyh01' to java.sql.Timestamp value] with root cause
com.mysql.cj.exceptions.DataConversionException: Cannot convert string 'xyh01' to java.sql.Timestamp value
at com.mysql.cj.result.AbstractDateTimeValueFactory.createFromBytes(AbstractDateTimeValueFactory.java:139)
at com.mysql.cj.protocol.a.MysqlBinaryValueDecoder.decodeByteArray(MysqlBinaryValueDecoder.java:269)
at com.mysql.cj.protocol.result.AbstractResultsetRow.decodeAndCreateReturnValue(AbstractResultsetRow.java:135)
at com.mysql.cj.protocol.result.AbstractResultsetRow.getValueFromBytes(AbstractResultsetRow.java:243)
at com.mysql.cj.protocol.a.result.ByteArrayRow.getValue(ByteArrayRow.java:91)
at com.mysql.cj.jdbc.result.ResultSetImpl.getTimestamp(ResultSetImpl.java:939)
at com.zaxxer.hikari.pool.HikariProxyResultSet.getTimestamp(HikariProxyResultSet.java)
at org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.stream.JDBCStreamQueryResult.getValue(JDBCStreamQueryResult.java:95)
at org.apache.shardingsphere.infra.merge.result.impl.stream.StreamMergedResult.getValue(StreamMergedResult.java:46)
at org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet.getTimestamp(ShardingSphereResultSet.java:251)
at org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet.getTimestamp(ShardingSphereResultSet.java:256)
at com.zaxxer.hikari.pool.HikariProxyResultSet.getTimestamp(HikariProxyResultSet.java)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.ibatis.logging.jdbc.ResultSetLogger.invoke(ResultSetLogger.java:69)
at com.sun.proxy.$Proxy79.getTimestamp(Unknown Source)
at org.apache.ibatis.type.DateTypeHandler.getNullableResult(DateTypeHandler.java:39)
at org.apache.ibatis.type.DateTypeHandler.getNullableResult(DateTypeHandler.java:28)
at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:85)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyAutomaticMappings(DefaultResultSetHandler.java:572)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:409)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:361)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:335)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:308)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:201)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)
at com.sun.proxy.$Proxy74.query(Unknown Source)
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
at com.sun.proxy.$Proxy73.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
at com.sun.proxy.$Proxy55.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:89)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
at com.sun.proxy.$Proxy61.getPageDataPutByMarker(Unknown Source)
at com.example.shardingjdbc.service.impl.AtableServceImpl.test2(AtableServceImpl.java:28)
at com.example.shardingjdbc.service.impl.AtableServceImpl$$FastClassBySpringCGLIB$$d5f7b7fc.invoke(
The issue involves other third-party dependencies, but our focus is solely on ShardingSphere itself. Since ShardingSphere implements the JDBC interface, standard applications should be functional. We wish to allocate more effort towards enhancing the current version, and therefore will no longer handle such issues. Please read the documentation or provide more effective information when submitting an issue.
shardingsphere JDBC 5.3.2 mysql-connector-java 8.0.27 mybatis-plus-boot-starter 3.5.2
Scenario review:
sql result:
java code :
mapper
entity
use
I use sql Hit to do forced routing,
After executing the call, the following error is reported:
JDBC Connection [HikariProxyConnection@47932664 wrapping org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection@9b9e9a5] will not be managed by Spring ==> Preparing: / ShardingSphere hint: dataSourceName=haval_test / SELECT * FROM page_data_put where mark = ? ==> Parameters: app(String) <== Columns: id, page_data_version_id, name, mark, cos_path, create_by, create_time, update_by, update_time, delete_flag, business_source, scene_id, page_put_path, business_channel <== Row: 1, 1650329764271161346, 品牌首页, app, mall_next/page_data/haval-test/app_index.json, lp, 2022-08-23 14:01:54.0, xyh01, 2023-04-24 10:44:15.0, 1, mall, 1612702987873218562, null, null Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@72b1cdef] 15:34:07.596 [http-nio-8081-exec-2] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.TransientDataAccessResourceException: Error attempting to get column 'create_time' from result set. Cause: java.sql.SQLException: Bad format for Timestamp 'xyh01' in column 8. ; Bad format for Timestamp 'xyh01' in column 8.; nested exception is java.sql.SQLException: Bad format for Timestamp 'xyh01' in column 8.] with root cause java.sql.SQLException: Bad format for Timestamp 'xyh01' in column 8. at com.mysql.jdbc.ResultSetImpl.getTimestampFromString(ResultSetImpl.java:5869) at com.mysql.jdbc.ResultSetImpl.getNativeTimestampViaParseConversion(ResultSetImpl.java:4343) at com.mysql.jdbc.ResultSetRow.getNativeDateTimeValue(ResultSetRow.java:491) at com.mysql.jdbc.ByteArrayRow.getNativeDateTimeValue(ByteArrayRow.java:256) at com.mysql.jdbc.ResultSetImpl.getNativeTimestamp(ResultSetImpl.java:4314) at com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:5907) at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:5589) at com.zaxxer.hikari.pool.HikariProxyResultSet.getTimestamp(HikariProxyResultSet.java) at org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.stream.JDBCStreamQueryResult.getValue(JDBCStreamQueryResult.java:95) at org.apache.shardingsphere.infra.merge.result.impl.stream.StreamMergedResult.getValue(StreamMergedResult.java:46) at org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet.getTimestamp(ShardingSphereResultSet.java:251) at org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet.getTimestamp(ShardingSphereResultSet.java:256) at com.zaxxer.hikari.pool.HikariProxyResultSet.getTimestamp(HikariProxyResultSet.java) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.ibatis.logging.jdbc.ResultSetLogger.invoke(ResultSetLogger.java:69) at com.sun.proxy.$Proxy79.getTimestamp(Unknown Source) at org.apache.ibatis.type.DateTypeHandler.getNullableResult(DateTypeHandler.java:39) at org.apache.ibatis.type.DateTypeHandler.getNullableResult(DateTypeHandler.java:28) at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:85) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyAutomaticMappings(DefaultResultSetHandler.java:572) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:409) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:361) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:335) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:308) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:201) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64) at com.sun.proxy.$Proxy74.query(Unknown Source) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62) at com.sun.proxy.$Proxy73.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427) at com.sun.proxy.$Proxy55.selectOne(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:160) at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:89) at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) at com.sun.proxy.$Proxy61.getPageDataPutByMarker(Unknown Source) at com.example.shardingjdbc.service.impl.AtableServceImpl.test2(AtableServceImpl.java:28) at com.example.shardingjdbc.service.impl.AtableServceImpl$$FastClassBySpringCGLIB$$d5f7b7fc.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)
at com.example.shardingjdbc.service.impl.AtableServceImpl$$EnhancerBySpringCGLIB$$96c3a99a.test2()
at com.example.shardingjdbc.controller.HomeController.test(HomeController.java:42)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)