如何在Quarkus运行的Vaadin应用中添加REST API端点?
解决Vaadin拦截REST端点的问题
问题原因
Vaadin v23.x在Quarkus环境下默认会拦截所有HTTP请求,将其路由到Vaadin的UI处理逻辑,导致你的/hello REST端点请求被Vaadin捕获,无法传递给RESTEasy Reactive处理,因此出现Vaadin相关错误。
解决方案
1. 配置Vaadin忽略指定路径
在Quarkus的配置文件(application.properties)中添加以下配置,让Vaadin跳过对REST端点路径的拦截:
# 替换为你的UI组件所在包路径,确保Vaadin能正常扫描UI vaadin.whitelisted-packages=com.your.project.ui # 让Vaadin忽略/hello路径的请求 vaadin.exclude-urls=/hello/*
2. 确认RESTEasy Reactive依赖存在
检查项目的pom.xml,确保已添加RESTEasy Reactive依赖(如果是Gradle项目则对应调整配置):
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy-reactive</artifactId> </dependency>
3. 重启应用验证
重启Quarkus应用后,再次访问http://localhost:8080/hello,即可正常返回REST端点的响应内容。
扩展说明
如果后续需要添加更多REST端点,可通过逗号分隔多个路径来批量排除:
vaadin.exclude-urls=/hello/*,/api/*,/admin/*
内容的提问来源于stack exchange,提问作者Mindaugas Jaraminas
相关产品推荐
相关产品推荐

