Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringBoot 1.5.10.RELEASE:REST服务一直在获得404_Java_Spring_Rest_Spring Boot - Fatal编程技术网

Java SpringBoot 1.5.10.RELEASE:REST服务一直在获得404

Java SpringBoot 1.5.10.RELEASE:REST服务一直在获得404,java,spring,rest,spring-boot,Java,Spring,Rest,Spring Boot,我看到很多类似的帖子,但是没有一个提议的解决方案对我有效。我有一场结构如下的战争: 文件夹“controller”包含具有以下代码的REST控制器: @RestController @RequestMapping("/api") public class HmlRestController { ........... @RequestMapping(value = "/myResource/", method = RequestMethod.POST) public Response

我看到很多类似的帖子,但是没有一个提议的解决方案对我有效。我有一场结构如下的战争:

文件夹“controller”包含具有以下代码的REST控制器:

@RestController
@RequestMapping("/api")
public class HmlRestController
{
  ...........
  @RequestMapping(value = "/myResource/", method = RequestMethod.POST)
  public ResponseEntity<?> myResource(@RequestBody HmlEvent hmlEvent)
  {
    ..........
  }
}
在Tomcat embedded中运行WAR并转到localhost:8080/hml将显示index.html文件,但尝试发布到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`
}
@springboot应用程序
@RestController
@请求映射(“/api”)
公共类HML应用程序
{
公共静态void main(字符串[]args)
{
run(HmlApplication.class,args);
}
@RequestMapping(value=“/myResource/”,method=RequestMethod.POST)
公共响应属性myResource(@RequestBody HmlEvent HmlEvent)
{
..........
}`在这里输入代码`
}
然后它就如预期的那样工作了。 有人能帮我照点灯,告诉我这是怎么回事吗? 多谢各位,
Nicolas

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

你没有提到你的软件包结构,但是你的其他软件包层次结构应该在你的主应用下面,在你的例子中有
@SpringBootApplication
注释,
HmlApplication

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

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

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

你没有提到你的软件包结构,但是你的其他软件包层次结构应该在你的主应用下面,在你的例子中有
@SpringBootApplication
注释,
HmlApplication

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

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

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

我不知道到底发生了什么,但重新启动一切解决了问题。我唯一能想到的是,在IntelliJ会话期间,显示了一些关于几个Spring上下文的消息,我选择了默认操作。但我不太确定。所以现在,我要结束这个问题。 亲切问候,,
Nicolas

您的控制器是否位于应用程序类包的子包中?是的。我试图插入一个显示包层次结构的图像,但由于某种原因,它没有起作用。因此,是的,HmlApplication类位于com.tests中,而控制器类位于com.tests.controllers中。您的控制器是否位于应用程序类包的子包中?是的。我试图插入一个显示包层次结构的图像,但由于某种原因,它没有起作用。因此,是的,HmlApplication类位于com.tests中,而控制器类位于com.tests.controllers中。是的,在这种情况下,HmlApplication类位于包层次结构的根。我不需要添加其他包。但是,没有找到控制器,我一直得到404。是的,就是这样,HmlApplication类位于包层次结构的根。我不需要添加其他包。然而,控制器没有找到,我一直被给予404。