【问题标题】:Spring Boot: Application is displaying 404 errorSpring Boot:应用程序显示 404 错误
【发布时间】:2018-08-11 06:03:01
【问题描述】:

我正在尝试运行 Spring Boot REST API 应用程序,但出现 404 错误。

package com.spring.boot.entry;
@SpringBootApplication
@ComponentScan(basePackageClasses = HelloController.class)
public class CourseApiApp {
    public static void main(String[] args) {
        SpringApplication.run(CourseApiApp.class, args);
    }
}

package com.spring.boot.entry.hello;
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String sayHello() {
        return "Hi First Spring boot application ";
    }
}

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>io.spring.boot.quickstart</groupId>
  <artifactId>course-api</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Spring Boot API</name>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
  </parent>

  <dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-solr</artifactId>
    </dependency>
  </dependencies>

  <properties>
    <java.version>1.8</java.version>
  </properties>
</project>

我也试过@ComponentScan(basePackageClasses = HelloController.class), 但没有运气。你能帮忙解决这个问题吗?

如果我点击http://localhost:8080/hello url,那么我会得到 404。

【问题讨论】:

  • 请显示启动日志
  • 删除这个@ComponentScan(basePackageClasses = HelloController.class)
  • @sajib,它适用。
  • 这里的错误:@ComponentScan(basePackageClasses = HelloController.class) 你应该定义 BASE 包,而不是类。更改 HelloController.class 所在的包。
  • @Reborn - 这是不正确的,basePackageClasses 属性需要Class,请参阅documentationbasePackage 属性接受包名称的字符串,这可能是您的想法。

标签: java spring spring-mvc spring-boot


【解决方案1】:

我在我的系统上执行了您的代码,除非您弄乱了目录结构,否则它会按预期工作。交叉检查一次。

CourseApiApp.java

HelloController.java

输出

【讨论】:

  • 我也验证了目录结构。但是,正如我上面提到的,它是同样的问题。无法确定问题出在哪里
  • 没有错误。浏览器中只有404错误。以下是控制台日志。2018-08-11 2018-08-11 22:19:22.476 INFO 4236 --- [main] s.b.c.e.t.TomcatEmbeddedServletContainer:Tomcat 在端口上启动:8080 (http) 2018-08-11 22: 19:22.488 INFO 4236 --- [main] com.spring.boot.entry.CourseApiApp:在 8.765 秒内启动 CourseApiApp(JVM 运行时间为 10.559)
  • 根据我的理解,至少 localhost:8080 应该给 apache 主页。但我什至没有看到 apache 主页本身
  • 您能否在控制台中看到 URL 映射。类似于:2018-08-11 22:28:44.741 INFO 19272 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/hello]}" onto public java.lang.String com.spring.boot.entry.hello.HelloController.sayHello()
  • 我已将 spring-boot-starter-parent 版本从 1.4.2.RELEASE 更改为 1.5.9.RELEASE。现在我可以看到输出了。不知道老版本有什么问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 2014-10-25
  • 2017-05-10
  • 2017-09-18
  • 2020-01-28
  • 1970-01-01
相关资源
最近更新 更多