Spring Boot集成Apache Camel与CouchDB启动时遇NumberFormatException求助
解决Camel连接CouchDB启动时的JsonSyntaxException/NumberFormatException问题
这个错误的核心原因很明确:你使用的Apache Camel CouchDB组件版本(2.24.2)不兼容CouchDB 2.x及以上版本的更新序列(update sequence)格式。
CouchDB 2.x之后,数据库的更新序列从原来的数字类型改成了字符串格式的UUID风格值(就是你错误日志里那个长串0-g1AAAAFTeJzLYWBg4MhgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUox5bEASYYGIPX____5WYkMBNU-gKj9T4zaAxC19_GrTXIAkknxRJq5AGLmfgJmJoDMrCdoZpICSJ09QXWJDEnyEEVZAMsCby4),但旧版本的Camel CouchDB组件仍然尝试把它解析成数字,于是抛出了NumberFormatException。
解决方案步骤:
升级Camel依赖版本
你需要把Camel相关组件升级到2.25.0及以上版本,因为从这个版本开始,Camel CouchDB组件修复了这个兼容性问题,支持解析字符串类型的更新序列。修改pom.xml配置
调整你的依赖版本,确保所有Camel相关依赖版本一致,比如改成2.25.0:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> </parent> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> <version>2.25.0</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-couchdb</artifactId> <version>2.25.0</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-spring-boot-starter</artifactId> <version>2.25.0</version> </dependency>验证路由配置
你的路由定义本身没有问题,但可以再确认一下:- CouchDB服务确实在
127.0.0.1:5984运行 - 目标数据库
migration已经创建(你已经试过新数据库,这一步应该没问题) - 如果CouchDB开启了认证,需要在URL里带上用户名密码,格式是
couchdb://user:password@127.0.0.1:5984/migration
- CouchDB服务确实在
额外注意点:
- 如果你需要更稳定的版本,可以选择更高的Camel版本(比如3.x系列),但要注意和Spring Boot 2.0.3的兼容性(Camel 3.x最低支持Spring Boot 2.1.x,所以如果要升级到3.x,你可能需要同时升级Spring Boot版本到2.1及以上)。
- 升级后清理Maven缓存(执行
mvn clean install),确保新依赖被正确加载。
内容的提问来源于stack exchange,提问作者Jill
相关产品推荐
相关产品推荐

