running-elephant / datart

Datart is a next generation Data Visualization Open Platform
https://running-elephant.github.io/datart-docs/
Apache License 2.0
1.97k stars 590 forks source link

datart导出PDF和图片报错 #2318

Open GuanghanLiu opened 6 months ago

GuanghanLiu commented 6 months ago

仪表板导出到PDF或图片时,下载列表显示“已失败”,日志报错信息如下:

2024-04-24 14:25:42.187 ERROR datart.server.service.impl.DownloadServiceImpl : Download Task execute error
org.springframework.dao.DataIntegrityViolationException: 
### Error updating database.  Cause: org.h2.jdbc.JdbcSQLDataException: Value too long for column "create_by VARCHAR_IGNORECASE(32)": "CAST('SCHEDULER_702e7ec52dbf48848180e93673cf20c7' AS VARCHAR_IGNORECASE) (42)"; SQL statement:
insert into share (id, org_id,  viz_type, viz_id,  authentication_mode, row_permission_by,  authentication_code, expiry_date,  create_by, create_time,  roles) values (?, ?,  ?, ?,  ?, ?,  ?, ?,  ?, ?,  ?) [22001-200]
### The error may exist in datart/core/mappers/ext/ShareMapperExt.java (best guess)
### The error may involve datart.core.mappers.ext.ShareMapperExt.insert-Inline
### The error occurred while setting parameters
### SQL: insert into share (id, org_id,  viz_type, viz_id,  authentication_mode, row_permission_by,  authentication_code, expiry_date,  create_by, create_time,  roles) values (?, ?,  ?, ?,  ?, ?,  ?, ?,  ?, ?,  ?)
### Cause: org.h2.jdbc.JdbcSQLDataException: Value too long for column "create_by VARCHAR_IGNORECASE(32)": "CAST('SCHEDULER_702e7ec52dbf48848180e93673cf20c7' AS VARCHAR_IGNORECASE) (42)"; SQL statement:
insert into share (id, org_id,  viz_type, viz_id,  authentication_mode, row_permission_by,  authentication_code, expiry_date,  create_by, create_time,  roles) values (?, ?,  ?, ?,  ?, ?,  ?, ?,  ?, ?,  ?) [22001-200]
; Value too long for column "create_by VARCHAR_IGNORECASE(32)": "CAST('SCHEDULER_702e7ec52dbf48848180e93673cf20c7' AS VARCHAR_IGNORECASE) (42)"; SQL statement:
insert into share (id, org_id,  viz_type, viz_id,  authentication_mode, row_permission_by,  authentication_code, expiry_date,  create_by, create_time,  roles) values (?, ?,  ?, ?,  ?, ?,  ?, ?,  ?, ?,  ?) [22001-200]; nested exception is org.h2.jdbc.JdbcSQLDataException: Value too long for column "create_by VARCHAR_IGNORECASE(32)": "CAST('SCHEDULER_702e7ec52dbf48848180e93673cf20c7' AS VARCHAR_IGNORECASE) (42)"; SQL statement:
insert into share (id, org_id,  viz_type, viz_id,  authentication_mode, row_permission_by,  authentication_code, expiry_date,  create_by, create_time,  roles) values (?, ?,  ?, ?,  ?, ?,  ?, ?,  ?, ?,  ?) [22001-200]
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)
    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 com.sun.proxy.$Proxy92.insert(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)
    at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
    at com.sun.proxy.$Proxy196.insert(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
    at com.sun.proxy.$Proxy197.insert(Unknown Source)
    at datart.server.service.impl.ShareServiceImpl.createShare(ShareServiceImpl.java:144)
    at datart.server.service.impl.ShareServiceImpl$$FastClassBySpringCGLIB$$12521ca2.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
    at datart.server.service.impl.ShareServiceImpl$$EnhancerBySpringCGLIB$$e0313c24.createShare(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
    at com.sun.proxy.$Proxy198.createShare(Unknown Source)
    at datart.server.service.impl.AttachmentPdfServiceImpl.getFile(AttachmentPdfServiceImpl.java:60)
    at datart.server.service.impl.DownloadServiceImpl.lambda$submitDownloadTask$0(DownloadServiceImpl.java:95)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: org.h2.jdbc.JdbcSQLDataException: Value too long for column "create_by VARCHAR_IGNORECASE(32)": "CAST('SCHEDULER_702e7ec52dbf48848180e93673cf20c7' AS VARCHAR_IGNORECASE) (42)"; SQL statement:
insert into share (id, org_id,  viz_type, viz_id,  authentication_mode, row_permission_by,  authentication_code, expiry_date,  create_by, create_time,  roles) values (?, ?,  ?, ?,  ?, ?,  ?, ?,  ?, ?,  ?) [22001-200]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:457)
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
    at org.h2.message.DbException.get(DbException.java:205)
    at org.h2.value.TypeInfo.getValueTooLongException(TypeInfo.java:535)
    at org.h2.value.TypeInfo.cast(TypeInfo.java:520)
    at org.h2.table.Column.validateConvertUpdateSequence(Column.java:378)
    at org.h2.table.Table.validateConvertUpdateSequence(Table.java:845)
    at org.h2.command.dml.Insert.insertRows(Insert.java:187)
    at org.h2.command.dml.Insert.update(Insert.java:151)
    at org.h2.command.CommandContainer.executeUpdateWithGeneratedKeys(CommandContainer.java:260)
    at org.h2.command.CommandContainer.update(CommandContainer.java:191)
    at org.h2.command.Command.executeUpdate(Command.java:251)
    at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:240)
    at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)
    at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
    at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
    at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
    at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
    at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
    at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
    ... 36 common frames omitted
Lwl164912 commented 4 months ago

这个问题明显字段大小问题,自己改一下就行了