canal 数据行解析错误
来源:互联网 发布:环刀法压实度软件 编辑:程序博客网 时间:2024/06/08 11:25
maven使用canal构建的项目,包数据行解析错误:如下
Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed.
Caused by: com.googlecode.aviator.exception.ExpressionRuntimeException: Execute expression error
at com.googlecode.aviator.ClassExpression.execute(ClassExpression.java:59)
at com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter.filter(AviaterRegexFilter.java:74)
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parseRowsEvent(LogEventConvert.java:309)
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parse(LogEventConvert.java:106)
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parse(LogEventConvert.java:62)
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser.parseAndProfilingIfNecessary(AbstractEventParser.java:323)
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3$1.sink(AbstractEventParser.java:176)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:121)
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:209)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalAccessError: tried to access method com.google.common.collect.MapMaker.softValues()Lcom/google/common/collect/MapMaker; from class com.alibaba.otter.canal.filter.PatternUtils
at com.alibaba.otter.canal.filter.PatternUtils.<clinit>(PatternUtils.java:24)
at com.alibaba.otter.canal.filter.aviater.RegexFunction.call(RegexFunction.java:24)
at Script_1500257423238_0.execute0(Unknown Source)
at com.googlecode.aviator.ClassExpression.execute(ClassExpression.java:53)
... 9 more
]
一开始考虑是jar包不完整错误,后来发现是因为canal引用的guava一个被废弃的方法导致的:
具体如下:
canal版本1.20
maven中自动依赖的guava版本19.0
解决方案:
将maven自动依赖的guava版本降为18.0 。在pom中选择性的加入如下代码,其中 xxxx 部分为 依赖guava 的jar包。pom中寻找依赖guava的jar包,可以在 pom.xml中右击选择maven->show dependencies 找到guava即可。
<dependency> <groupId>xxxxx</groupId> <artifactId>xxxxx</artifactId> <version>xxxxxT</version> <exclusions> <exclusion> <artifactId>guava</artifactId> <groupId>com.google.guava</groupId> </exclusion> </exclusions></dependency><dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version></dependency>
- canal 数据行解析错误
- 关于canal slave 解析sql错误的一个探究
- git-canal:错误修改
- 数据同步 canal
- mysql跨网域canal数据同步
- 基于canal数据加工系统
- canal
- 解析数据错误
- android 数据解析错误
- 基于数据库增量日志解析 canal
- mysql日志解析工具canal介绍
- 利用Canal完成Mysql数据同步Redis
- canal 数据同步的一个重要点
- 数据同步canal 疑点——内存
- 使用canal和canal_mysql_nosql_sync同步mysql数据
- 数据诊断VC++错误解析
- 使用canal进行mysql数据同步到Redis
- 实时抓取MySQL的更新数据到Hadoop canal
- BZOJ 1086 王室联邦 [王室联邦-树上分块]
- 查看linux发行版本及字长
- 关于while true 循环中 try catch块的使用
- react-native 导航栏的传值、tabbarNavigation 如何隐藏tabbar
- 关于Boolean==Boolean和Boolean=Boolean的启示
- canal 数据行解析错误
- Leetcode Candy
- 保持屏幕唤醒方法
- Android Wi-Fi Ethernet新IP获取机制—IpManager(Android 7.0)
- Android实战开发:获得屏幕物理尺寸、密度及分辨率
- Python range和xrange的区别
- php中FILES的注意点
- 多线程
- JavaScript中的小技巧和注意点(一)