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

Quarkus CDI配置拦截器报Interceptor has no bindings错误如何解决

问题原因

你自定义的@Logged注解缺少CDI规范要求的@InterceptorBinding元注解,Quarkus内置的Arc CDI容器无法识别该注解为拦截器绑定标记,因此即使你在InvocationLogger拦截器类上添加了@Logged注解,容器仍然判定该拦截器没有合法绑定,抛出对应错误。

修复方案

修改@Logged注解的定义代码,添加@InterceptorBinding元注解即可,修改后的完整代码如下:

package org.acme.getting.started;

import java.lang.annotation.Target;
import java.lang.annotation.Retention;
import javax.interceptor.InterceptorBinding;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;

@InterceptorBinding
@Retention(value = RUNTIME)
@Target(value = { METHOD, TYPE })
public @interface Logged {

}

如果你使用的是Quarkus 3及以上版本,需要将代码中所有javax开头的包名替换为jakarta,其余逻辑保持不变。
修改完成后重新启动应用,拦截器即可正常生效,调用GreetingService的greeting方法时会正常输出方法调用日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:06:07