获取对springrestjpa存储库代码的调用,返回404,尽管使用了正确的Map

7jmck4yq  于 2021-07-22  发布在  Java
关注(0)|答案(2)|浏览(319)

我正在尝试SpringRestJPA存储库代码。但是简单的httpget和post调用返回404,并且eclipse控制台中没有日志。所用类中的其他函数调用是可以的。因此,只需发布rest控制器代码:

package mypack;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CRUDController
{
    @Autowired
    MasterManager Manager;  //the service layer object being used

    @GetMapping(value= "getall")   //getting 404 upon calling this, when it should at least return empty array of JSON objects with status msg 200?
    public List<Master> getAll()
    {
        return Manager.getall();
    }

    @GetMapping(value= "add")//getting 404 upon calling this, expecting status msg 200
    public void add()
    {
        Master g1= new Master("Action");
        Master g2= new Master("Adventure");
    //for the purpose of the initial testing manually creating objects and trying to persist them
        Manager.add(g1);
        Manager.add(g2);

    }

    @DeleteMapping(value= "delete/{id}")
    public void delete(@PathVariable int id)
    {
        Manager.delete(id);
    }

    @PutMapping(value= "update/{id}", headers = "Accept=application/json")
    public void update(@RequestBody Master master, @PathVariable int id)
    {
        Manager.update(master, genre_id);
    }

    @GetMapping(value= "getmaster/{id}")
    public String getMaster(@PathVariable int id)
    {
        return Manager.get(id);
    }
}

eclipse控制台中没有日志:

我哪里出错了?

cetgtptt

cetgtptt1#

你需要 request mapping 在控制器级别指定上下文路径 Project 具体如下:

@RestController
@RequestMapping("Project")
public class CRUDController
{
 ...
}
pkbketx9

pkbketx92#

spring添加了automagic mime类型处理,这取决于您拥有哪种依赖关系。如果您有一个json库,它期望调用者发送json并接受json。如果您有一个像jackson这样的xmlMap器,它只接受xml,并且只与接受xml的客户机通信。
确保客户始终拥有 Content-Type 收割台和 Accept 设置。否则spring将返回404,意思是“我不知道如何解释该请求或将任何值返回给您”。
不幸的是,spring没有记录为什么在这种情况下会在info级别发送404。您可能需要将日志级别设置为 DEBUG 在这种情况下。

相关问题