SpringBoot 1.5.10.RELEASE:REST服务保持geting 404

时间:2018-04-06 14:27:14

标签: java spring rest spring-boot

我看到了几十个类似的帖子,但提议的解决方案都没有对我有用。我有一个具有以下结构的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`
}

然后按预期工作。 有人可以在这里点灯,让我知道这里发生了什么? 提前谢谢了, 尼古拉斯

2 个答案:

答案 0 :(得分:2)

通过使用Spring Boot及其@SpringBootApplication,您可以自动启用组件扫描(请参阅@ComponentScan注释上的@SpringBootApplication)。

您没有提及您的软件包结构,但您的其他软件包层次结构应位于主应用程序的下方,并带有@SpringBootApplication注释,HmlApplication

您可以通过向应用程序类添加额外的@ComponentScan注释来显式添加包。

@ComponentScan(“my.package”)
@SpringBootApplication
public class HmlApplication {

答案 1 :(得分:0)

我不确切知道发生了什么,但重新开始一切都解决了问题。我唯一能想到的是,在IntelliJ会话期间,显示了一些关于几个Spring上下文的消息,我选择了默认操作。但我不再确定。所以现在,我正在关闭这个问题。 亲切的问候, 尼古拉斯