Micronaut Java Gradle项目无法识别控制器,请求返回404
Micronaut Java Gradle项目控制器无法检测,路由返回「Not Found」问题解决
问题排查与修复步骤
1. 补充缺失的注解处理器依赖
你的build.gradle中缺少Micronaut核心注解处理器,框架无法生成控制器代理类和注入元数据,导致控制器不被识别。在dependencies块中添加以下依赖:
annotationProcessor("io.micronaut:micronaut-inject-java") annotationProcessor("io.micronaut:micronaut-validation")
2. 确认主应用类配置
确保com.micronaut.Application类带有@MicronautApplication注解,且位于com.micronaut包下(框架默认扫描该包及其子包):
package com.micronaut; import io.micronaut.runtime.Micronaut; @MicronautApplication public class Application { public static void main(String[] args) { Micronaut.run(Application.class, args); } }
3. 移除冲突的Netty版本依赖
手动指定的Netty版本可能与Micronaut内置版本冲突,删除build.gradle中以下两行:
// runtimeOnly("io.netty:netty-codec-http:4.1.66.Final") // runtimeOnly("io.netty:netty-handler:4.1.66.Final")
4. 清理缓存并重新构建
执行命令清理旧构建缓存,重新生成注解元数据并启动项目:
./gradlew clean build run
验证修复
项目启动后访问http://localhost:8080/symbol/hello,应返回hello,控制器内的断点也会正常触发。
内容的提问来源于stack exchange,提问作者Yosef Hamdy
相关产品推荐
相关产品推荐

