当前位置: 首页 > 知识库问答 >
问题:

SpingBoot映射不工作。404状态

梁楷
2023-03-14

我在youtube上按部就班地学习教程,但我没有得到结果。代码如下:

主要应用

@SpringBootApplication
public class Application {
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
}
public class Greeting {

    private BigInteger id;
    private String text;

    public Greeting() {}

    public BigInteger getId() {
        return id;
    }

    public void setId(BigInteger id) {
        this.id = id;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }
}
@RestController()
public class GreetingController {

    private static BigInteger nextId;
    private static Map<BigInteger, Greeting> greetingMap;

    private static Greeting save(Greeting greeting) {
        if (greetingMap == null) {

            greetingMap = new HashMap<BigInteger, Greeting>();
            nextId = BigInteger.ONE;
        }
        greeting.setId(nextId);
        nextId = nextId.add(BigInteger.ONE);
        greetingMap.put(greeting.getId(), greeting);
        return greeting;
    }

    static {
        Greeting g1 = new Greeting();
        g1.setText("Hello World");
        save(g1);
        Greeting g2 = new Greeting();
        g2.setText("Hola Mundo!");
        save(g2);
    }

    @RequestMapping(
            value = "/api/greetings",
            method = RequestMethod.GET,
            produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Collection<Greeting>> getGreetings() {
        Collection<Greeting> greetings = greetingMap.values();

        return new ResponseEntity<Collection<Greeting>>(greetings, HttpStatus.OK);
    }
}
<modelVersion>4.0.0</modelVersion>

<groupId>com.hakeem.webservice2</groupId>
<artifactId>WebService2</artifactId>
<version>0.0.1-SNAPSHOT</version>

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

<dependencies>

    <dependency>

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

    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>

</build>
{
    "timestamp": 1439128293727,
    "status": 404,
    "error": "Not Found",
    "message": "No message available",
    "path": "/api/greetings"
}

或来自Chrome的以下内容:

白标签错误页

此应用程序没有/error的显式映射,因此您将其视为一种后退。

共有1个答案

郑向阳
2023-03-14

给定的代码在我看来是正确的。查看完整的源代码可能会有所帮助。例如-如果greetingcontroller类不在application类的同一包或子包中,则不会扫描它,因此您将出现此错误。

 类似资料:
  • 好的,我知道这里有20个帖子有同样的问题,但是没有一个对我有帮助,所以这可能是重复的,但是我已经检查了所有其他帖子,没有一个解决了我的问题,所以一定有什么地方我做错了,或者我没有从前面提到的问题的答案中做正确的修改。 我正在尝试使用Spring制作一个小应用程序,我还在试验它,但我花了大约4天的时间试图找出问题所在,但我就是做不到。每当我试图从控制器获取jsp时,我仍然会得到HTTP状态404。除

  • 我有一个具有两个外键和多对一关联(到表、检查点和设置)的表选项:db Schema。 完整堆栈跟踪是: org.springframework.dao.DataIntegrityViolationException:不能执行语句;SQL[N/A];约束[null];嵌套异常是org.hibernate.exception.constraintViolationException:在org.spri

  • 我有一个像这样的web服务方法。我将通过POST发送JSON映射到该方法,但它没有正确设置address字段。我知道JSON是有效的,因为它直接从一个将一个人转储到JSON并读回它的单元测试出来。测试通过(反序列化的对象有2个电话号码),这是确切的字符串。 当我发布JSON时,它不会在对象上设置phone numbers映射。以下是输出: 信息:保存实体:Person{id=null,firstn

  • 我已经将firebase crashlytics库和crashlytics gradle插件添加到我的项目中 我为我的版本生成类型显式设置了 但映射文件不幸没有上传。我在firebase crashlytics console中验证了它-对于我的测试崩溃,stacktrace指向。以下是我在gradle日志中发现的内容: [DEBUG][com.google.firebase.crashlytic

  • 如何化解?在Spring Boot中默认的视图解析器是什么?我需要强制使用胸腺嘧啶吗? 另外,我是否需要向application.properties添加一些内容

  • 我在尝试获取URL时得到404“http://localhost/demo_spring/letsgo/find“它将在其中搜索到search.jsp页面(如下面的代码片段所示) 错误消息:HTTP状态404-/demo\u-spring/letsgo/WEB-INF/views/search。jsp 我已经检查过了,它是为“工作的”http://localhost/demo_spring/let