Skip to content

otter开启tsdb报错 ClassNotFoundException #1132

@quanllong

Description

@quanllong

1、首先是otter订阅mariadb报错:
Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: column size is not match for table:sc_dictionary.dict_lang_bank,11 vs 10

看了下其他issue,查到 “报错的意思,指binlog里DML数据的表的列信息 要比 TableMeta里获取到的列信息要多”
解决办法是 canal 开启 TSDB: alibaba/canal#1510
otter支持canal开启 TSDB:#807

2、于是我编辑了otter 开启 TSDB,结果报错如下,请问还差哪些配置呢?

otter版本 4.2.9-SNAPSHOT,对应 canal版本 1.1.5

pid:91 nid:3 exception:setl:com.google.common.util.concurrent.UncheckedExecutionException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tableMetaTSDB' defined in class path resource [spring/tsdb/mysql-tsdb.xml]: Cannot resolve reference to bean 'metaHistoryDAO' while setting bean property 'metaHistoryDAO'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metaHistoryDAO' defined in class path resource [spring/tsdb/mysql-tsdb.xml]: Cannot resolve reference to bean 'sqlMapClient' while setting bean property 'sqlMapClient'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.ibatis.SqlMapClientFactoryBean] for bean with name 'sqlMapClient' defined in class path resource [spring/tsdb/mysql-tsdb.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.ibatis.SqlMapClientFactoryBean
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
at com.google.common.collect.MigrateMap$MigrateConcurrentMap.get(MigrateMap.java:68)
at com.alibaba.otter.canal.server.embedded.CanalServerWithEmbedded.start(CanalServerWithEmbedded.java:128)
at com.alibaba.otter.node.etl.select.selector.canal.CanalEmbedSelector.start(CanalEmbedSelector.java:212)
at com.alibaba.otter.node.etl.select.SelectTask.startup(SelectTask.java:170)
at com.alibaba.otter.node.etl.select.SelectTask.run(SelectTask.java:126)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tableMetaTSDB' defined in class path resource [spring/tsdb/mysql-tsdb.xml]: Cannot resolve reference to bean 'metaHistoryDAO' while setting bean property 'metaHistoryDAO'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'metaHistoryDAO' defined in class path resource [spring/tsdb/mysql-tsdb.xml]: Cannot resolve reference to bean 'sqlMapClient' while setting bean property 'sqlMapClient'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.ibatis.SqlMapClientFactoryBean] for bean with name 'sqlMapClient' defined in class path resource [spring/tsdb/mysql-tsdb.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.ibatis.SqlMapClientFactoryBean

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions