Maven升级到3.10后Camel Consumer无法从Azure Storage Blob读取数据
核心问题及解决步骤
你遇到的问题是Camel 3.10版本的camel-azure-storage-blob组件和旧版camel-azure的配置、依赖兼容性差异导致的,具体修改点如下:
1. 替换兼容的Azure Blob SDK依赖
旧版com.microsoft.azure:azure-storage属于Azure v8 SDK,完全不兼容Camel 3.7+版本推出的camel-azure-storage-blob组件(该组件适配Azure v12 SDK),首先移除旧依赖,替换为对应版本的v12 SDK:
<!-- 移除这个旧依赖 --> <!-- <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-storage</artifactId> <version>8.6.6</version> </dependency> --> <!-- 新增v12版本Blob SDK --> <dependency> <groupId>com.azure</groupId> <artifactId>azure-storage-blob</artifactId> <version>12.11.1</version> </dependency>
2. 修正路由中的凭证参数名
新版azure-storage-blob组件的凭证参数名为credential(不带s),你当前配置的credentials=#credentials属于旧版参数名,组件无法识别到你注册的凭证Bean,会默认走匿名访问,若容器未开启匿名权限则会静默返回空结果,修改路由配置:
from("timer://testRoute?fixedRate=true&period=10s") // 将credentials改为credential .to("azure-storage-blob://azureStorageName/azureContainerName?credential=#credentials&operation=listBlobs") .process("myProcessor");
3. 可选:开启调试日志定位问题
如果修改后仍无数据,可在日志配置中添加org.apache.camel.component.azure.storage.blob包的DEBUG级别日志,即可看到每次调用Azure接口的返回结果和错误信息,方便进一步排查权限、容器名配置错误等问题。
内容的提问来源于stack exchange,提问作者srikant_mantha
相关产品推荐
相关产品推荐

