Flink CDC为啥我自己打包 就报这个错误?Caused by: java.lang.NoSuchFieldError: INCREMENTAL_SNAPSHOT_CHUNK_SIZE at io.debezium.connector.postgresql.PostgresConnectorConfig.(PostgresConnectorConfig.java:1124) at io.debezium.connector.postgresql.PostgresConnectorTask.getAllConfigurationFields(PostgresConnectorTask.java:295) Could not initialize class io.debezium.connector.postgresql.PostgresConnectorConfig
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题描述: 您在自行打包Flink CDC时遇到错误,具体报错信息为:Caused by: java.lang.NoSuchFieldError: INCREMENTAL_SNAPSHOT_CHUNK_SIZE at io.debezium.connector.postgresql.PostgresConnectorConfig.<init>(PostgresConnectorConfig.java:1124) at io.debezium.connector.postgresql.PostgresConnectorTask.getAllConfigurationFields(PostgresConnectorTask.java:295) Could not initialize class io.debezium.connector.postgresql.PostgresConnectorConfig。
原因分析:
INCREMENTAL_SNAPSHOT_CHUNK_SIZE字段)在不同版本间有所变动,而您使用的代码或依赖未同步更新。解决步骤:
检查并统一依赖版本:确保您使用的Debezium版本与Flink以及其他相关组件兼容。建议参考阿里云官方文档或示例项目中推荐的版本进行配置。
避免使用内部API:请确认您的代码中没有直接依赖于Debezium或其他库的非公开(internal)API。仅使用那些明确标注为@Public或@PublicEvolving的方法,以保证向前兼容性。
清理和重建依赖:删除本地Maven或Gradle缓存,重新下载依赖,确保所有依赖都是最新且一致的版本。
查看并调整配置:虽然本错误直接关联于代码级别的问题,但确保您的Flink作业配置也遵循最佳实践,比如适当调整资源限制以避免潜在的间接影响。
注意事项:
通过上述步骤,您可以尝试解决因依赖冲突或API不兼容导致的打包错误。如果问题依旧,建议详细审查项目的依赖树,寻找可能的冲突来源,并考虑在社区论坛或官方渠道寻求更具体的帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。