繁体   English   中英

SpringBoot 1.5.10。发布:REST服务不断获取404

[英]SpringBoot 1.5.10.RELEASE: REST service keeps geting 404

我看到许多类似的帖子,但是没有一个建议的解决方案对我有用。 我有一个具有以下结构的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文件,但尝试过帐到localhost:8080 / hml / api / myResource会返回HTTP404 。如果我将此代码移到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`
}

然后它会按预期工作。 有人可以在这里给我点灯,让我知道这是怎么回事吗? 提前非常感谢,尼古拉斯

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

您没有提到包的结构,但是其他包层次结构应该在主应用程序的下面,并带有@SpringBootApplication注释(在您的情况下为HmlApplication

您可以通过在应用程序类中添加额外的@ComponentScan批注来显式添加软件包。

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

我不知道到底发生了什么,但是重新启动一切解决了问题。 我唯一能想到的是,在IntelliJ会话期间,已显示一些消息,说明一些Spring上下文,并且我选择了默认操作。 但是我不确定。 因此,现在,我要关闭此问题。 亲切的问候,尼古拉斯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM