Quarkus混用REST与RESTEasy Classic启动失败问题求助
解决Quarkus中"Mixing Quarkus REST and RESTEasy Classic server parts is not supported"错误
这个错误是因为你的项目同时引入了Quarkus的两种REST实现栈:Quarkus REST(原RESTEasy Reactive)和RESTEasy Classic,两者无法混用。结合你使用的2021年课程,以下是两种解决思路:
方案一:匹配课程的RESTEasy Classic栈
2021年的Quarkus课程大概率基于RESTEasy Classic,你需要确保客户端和服务端都使用该栈:
- 移除当前添加的Quarkus REST客户端依赖:
mvn quarkus:remove-extension -Dextension="rest-client" - 添加RESTEasy Classic对应的客户端扩展:
mvn quarkus:add-extension -Dextension="resteasy-classic-rest-client" - 检查
pom.xml,确保没有quarkus-rest(Quarkus REST服务端)依赖,只保留quarkus-resteasy相关的服务端依赖。
方案二:迁移到新版Quarkus REST栈(推荐)
如果想使用Quarkus最新的REST实现,需要统一使用Quarkus REST栈:
- 移除RESTEasy Classic的服务端依赖(如果存在):
mvn quarkus:remove-extension -Dextension="resteasy" - 确保你的服务端资源(比如
BookResource)使用标准Jakarta REST注解(@Path、@GET等,包路径为jakarta.ws.rs.*),Quarkus REST完全兼容这些注解。 - 保留你已经添加的
rest-client扩展,它是Quarkus REST对应的客户端依赖。
额外检查
打开你的pom.xml,确认以下依赖不同时存在:
quarkus-resteasy和quarkus-rest-clientquarkus-rest和quarkus-resteasy-classic-rest-client
如果有上述组合,删除其中一组即可解决冲突。
内容的提问来源于stack exchange,提问作者gaviezri
相关产品推荐
相关产品推荐

