You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus中运行Cassandra客户端报错求助

运行Quarkus Cassandra官方示例启动失败问题排查

环境信息

  • Quarkus版本:2.7.x
  • Java版本:11

报错日志

ERROR [io.qua.dep.dev.IsolatedDevModeMain] (main) Failed to start quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type demo.FruitDao and qualifiers [@Default]
        - java member: demo.FruitService#dao
        - declared on CLASS bean [types=[demo.FruitService, java.lang.Object], qualifiers=[@Default, @Any], target=demo.FruitService]
        at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1202)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:272)
        at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:134)
        at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:462)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:882)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
        at java.base/java.lang.Thread.run(Thread.java:834)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)
Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type demo.FruitDao and qualifiers [@Default]
        - java member: demo.FruitService#dao
        - declared on CLASS bean [types=[demo.FruitService, java.lang.Object], qualifiers=[@Default, @Any], target=demo.FruitService]
        at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:428)
        at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:508)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:260)
        ... 13 more

        at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:330)
        at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:252)
        at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:60)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.firstStart(IsolatedDevModeMain.java:92)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:455)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:66)
        at io.quarkus.bootstrap.app.CuratedApplication.runInCl(CuratedApplication.java:150)
        at io.quarkus.bootstrap.app.CuratedApplication.runInAugmentClassLoader(CuratedApplication.java:106)
        at io.quarkus.deployment.dev.DevModeMain.start(DevModeMain.java:132)
        at io.quarkus.deployment.dev.DevModeMain.main(DevModeMain.java:62)
Caused by: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type demo.FruitDao and qualifiers [@Default]

问题原因及解决方法

核心问题是Quarkus的CDI容器无法找到demo.FruitDao的实例,导致FruitService依赖注入失败。可按以下步骤排查:

  • 检查CDI注解:确认FruitDao类上添加了@ApplicationScoped、@Singleton这类CDI管理注解,官方示例中的DAO类默认会标注@ApplicationScoped,如果手动修改过代码可能遗漏了。
  • 包扫描范围:确保FruitDao和FruitService在同一根包下(比如都在demo包),若不在默认扫描范围内,需在application.properties中配置quarkus.index-dependency指定扫描路径。
  • 依赖完整性:检查pom.xml是否正确引入了quarkus-cassandra依赖,避免依赖缺失或版本不匹配(Quarkus 2.7.x对应Cassandra客户端版本需兼容)。
  • 代码一致性:如果是通过Quarkus CLI生成的项目,确认没有修改示例代码导致FruitDao的注解或类结构被破坏。

内容的提问来源于stack exchange,提问作者jguerra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:20:31