【发布时间】:2018-09-16 14:47:04
【问题描述】:
我看到了几十个类似的帖子,但没有一个建议的解决方案对我有用。我有一个结构如下的 WAR:
文件夹“controller”包含一个 REST 控制器,代码如下:
@RestController
@RequestMapping("/api")
public class HmlRestController
{
...........
@RequestMapping(value = "/myResource/", method = RequestMethod.POST)
public ResponseEntity<?> myResource(@RequestBody HmlEvent hmlEvent)
{
..........
}
}
application.properties 文件具有以下条目:
server.context-path=/hml
在嵌入的 Tomcat 中运行 WAR 并转到 localhost:8080/hml 会显示 index.html 文件,但尝试 POST 到 localhost:8080/hml/api/myResource 会返回 HTTP 404。 如果我将此代码移动到 HmlApplication 类中,如下所示:
@SpringBootApplication
@RestController
@RequestMapping("/api")
public class HmlApplication
{
public static void main(String[] args)
{
SpringApplication.run(HmlApplication.class, args);
}
@RequestMapping(value = "/myResource/", method = RequestMethod.POST)
public ResponseEntity<?> myResource(@RequestBody HmlEvent hmlEvent)
{
..........
}`enter code here`
}
然后它按预期工作。 有人可以在这里点亮一些灯,让我知道这里发生了什么吗? 提前谢谢了, 尼古拉斯
【问题讨论】:
-
你的控制器是否位于应用类包的子包中?
-
是的。我尝试插入显示包层次结构的图像,但由于某种原因,它不起作用。所以是的,HmlApplication 类在 com.tests 中,而控制器类在 com.tests.controllers 中。
标签: java spring rest spring-boot