找不到Micronaut控制器错误页面

时间:2018-11-19 18:07:00

标签: micronaut

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

之后,我使用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";
   }
}

但是我得到

{"_links":{"self":{"href":"/","templated":false}},"message":"Page Not Found"}

每当我尝试访问/ hello端点

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

micronaut:
    application:
        name: complete
    server:
        port: 8080

2 个答案:

答案 0 :(得分:1)

在没有看到更多项目的情况下,很难说出问题所在。我已经将您的代码直接粘贴到项目中,并且可以正常工作。参见位于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";
    }
}

端点响应:

$ curl http://localhost:8080/hello
some string

要寻找的一件事是,您可能缺少https://github.com/jeffbrown/khwaja404/blob/a3e57623ed5b30e28eb95bfe0f4a4a5c9d123fd8/build.gradle#L27-L29所表达的micronaut-inject-java和/或micronaut-inject依赖性。

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

答案 1 :(得分:1)

我挣扎了一整天才发现它是 Eclipse 中的一个错误,并且该问题已在最新版本中得到解决。请切换到版本:2020-12 (4.18.0) 或更高版本

Issue Description

Eclipse Bug