找不到Micronaut控制器错误页面

San*_*ari 3 micronaut

我使用mn create-app example.micronaut.complete创建了一个新的micronaut应用程序

之后,我使用intellij打开了项目,并使用以下代码向该项目添加了新类TestController:

package example.micronaut;
import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;


@Controller("/hello")
public class TestController {

TestController(){}

@Get(value = "/", produces = MediaType.TEXT_PLAIN)
String getTest(){
    return "some string";
   }
}
Run Code Online (Sandbox Code Playgroud)

但是我越来越

{"_links":{"self":{"href":"/","templated":false}},"message":"Page Not Found"}
Run Code Online (Sandbox Code Playgroud)

每当我尝试访问/ hello端点时

我的application.yml看起来像这样:

micronaut:
    application:
        name: complete
    server:
        port: 8080
Run Code Online (Sandbox Code Playgroud)

Jef*_*own 6

没有看到更多的项目,很难说出问题所在。我已经将您的代码直接粘贴到项目中,并且可以正常工作。请参阅https://github.com/jeffbrown/khwaja404上的项目。https://github.com/jeffbrown/khwaja404/blob/a3e57623ed5b30e28eb95bfe0f4a4a5c9d123fd8/src/main/java/example/micronaut/TestController.java上的控制器工作正常...

package example.micronaut;

import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;


@Controller("/hello")
public class TestController {

    // this empty constructor is not
    // needed, but isn't a problem...
    TestController() {
    }

    @Get(value = "/", produces = MediaType.TEXT_PLAIN)
    String getTest() {
        return "some string";
    }
}
Run Code Online (Sandbox Code Playgroud)

端点响应:

$ curl http://localhost:8080/hello
some string
Run Code Online (Sandbox Code Playgroud)

要寻找的一件事是您可能会缺少https://github.com/jeffbrown/khwaja404/blob/a3e57623ed5b30e28eb95bfe0f4a4a5c9d123fd8/build.gradle#L27-L29所表示的micronaut-inject-javaand / or micronaut-inject依赖关系。

另一个是如果您正在从IDE(例如IntelliJ IDEA)运行该应用程序,请确保在构建中启用了注释处理器。

  • 感谢您及时的回复。糟糕的是,我一直忘记启用注释处理器。谢谢你指出。我想知道是否有一种方法可以在 IDE 中为 micronaut 启用控制台调试日志记录,类似于 spring boot。 (2认同)