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
相关产品推荐
相关产品推荐

