Micronaut 控制器错误页面未找到
Posted
技术标签:
【中文标题】Micronaut 控制器错误页面未找到【英文标题】:Micronaut controller error Page Not Found 【发布时间】:2019-04-22 03:36:18 【问题描述】:我创建了一个新的 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
【问题讨论】:
【参考方案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
要寻找的一件事是您可能缺少micronaut-inject-java
和/或micronaut-inject
依赖项,如https://github.com/jeffbrown/khwaja404/blob/a3e57623ed5b30e28eb95bfe0f4a4a5c9d123fd8/build.gradle#L27-L29 所示。
另一个是如果您从 IDE(如 IntelliJ IDEA)运行应用程序,请确保您在构建中启用了注释处理器。
【讨论】:
无法从您的代码示例中判断您使用的是 Java 还是 Groovy。我链接的示例使用 Java。如果你使用 Groovy,当然你需要micronaut-inject-groovy
依赖。
感谢您的快速回复。我的错误是我一直忘记启用注释处理器。感谢您指出。我想知道是否有一种方法可以在 IDE 中为 micronaut 启用控制台调试日志记录,类似于 spring boot。
“我想知道是否有一种方法可以在 IDE 中为 micronaut 启用控制台调试日志记录,类似于 spring boot。”。是的你可以。见github.com/jeffbrown/khwaja404/blob/master/src/main/resources/…。
如果您不知道如何在 Eclipse 中启用编译时注释处理器,您应该将其作为单独的问题发布。
如果你签出我链接的项目并运行./gradlew run
(或者gradlew run
,如果你使用的是基本的Windows shell),你会看到Micronaut端点工作正常。【参考方案2】:
我挣扎了一整天才发现它是 Eclipse 中的一个错误,并且该问题已在最新版本中得到解决。请切换到版本:2020-12 (4.18.0)或以上
Issue Description
Eclipse Bug
【讨论】:
以上是关于Micronaut 控制器错误页面未找到的主要内容,如果未能解决你的问题,请参考以下文章
localhost/phpmyadmin 给出页面未找到错误