Camel集成AtlasMap导入CSV至SQL时遇端点解析失败问题求助
问题:Camel AtlasMap组件无法自动创建,端点解析失败
我要实现CSV数据导入SQL数据库,配置了Camel YAML DSL路由,通过AtlasMap UI定义了CSV与数据库字段映射,导出的mapping.adm文件已放在资源目录。pom.xml里已经引入相关依赖,但运行时提示“Failed to resolve atlasmap或atlas端点”,无法自动创建atlasmap组件。试过把URI前缀改成atlas也没用,进程以退出码1终止。
路由配置
steps: - unmarshal: csv: delimiter: "," - to: uri: atlasmap:mapping.adm - to: uri: sql:INSERT INTO log (log_date, message) VALUES (:#date, :#message)?dataSource=#dataSource
pom.xml依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-spring-boot-starter</artifactId> <version>4.5.0</version> </dependency> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc11</artifactId> <version>23.4.0.24.05</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.17.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.17.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>6.1.6</version> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> <version>9.0.30</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-atlasmap</artifactId> <version>3.20.1</version> </dependency> <dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-atlasmap-starter</artifactId> <version>3.20.1</version> </dependency> </dependencies>
错误详情
org.apache.camel.FailedToCreateRouteException: Failed to create route CSVToDBLoader at: >>> DoTry[[Unmarshal[org.apache.camel.model.dataformat.CsvDataFormat@656c0eae], To[atlasmap:mapping.adm], To[sql:INSERT INTO log (log_date, message) VALUES (:#date, :#message)?dataSource=#dataSource]]] <<< in route: Route(CSVToDBLoader)[From[file-watch:{{base_directory}}{{inp... because of Failed to resolve endpoint: atlasmap://mapping.adm due to: Cannot auto create component: atlasmap at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:234) ... Caused by: java.lang.IllegalArgumentException: Cannot find component with name: atlasmap. Did you mean: hazelcast-map ...
解决方案
1. 修复版本不匹配问题
核心原因是Camel核心版本(4.5.0)与AtlasMap依赖版本(3.20.1)差异过大,Camel 4.x和3.x组件兼容性极差,必须保证所有Camel相关依赖版本一致。将AtlasMap依赖版本改为4.5.0:
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-atlasmap</artifactId> <version>4.5.0</version> </dependency> <dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-atlasmap-starter</artifactId> <version>4.5.0</version> </dependency>
2. 清理冗余依赖
pom中重复引入了spring-boot-starter-jdbc,删除其中一个避免冲突:
<!-- 删除该重复依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <version>3.3.0</version> </dependency>
3. 验证端点URI
Camel 4.x中AtlasMap的端点前缀仍为atlasmap,无需修改,保持原有路由配置即可。
4. 刷新依赖并重启
执行mvn clean install清理并重新构建项目,确保依赖正确下载后重启应用。
内容的提问来源于stack exchange,提问作者satheesh kumar
相关产品推荐
相关产品推荐

