我使用创建了一个新的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
答案 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) 或更高版本