我正在尝试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控制台中没有日志:
我哪里出错了?
2条答案
按热度按时间cetgtptt1#
你需要
request mapping
在控制器级别指定上下文路径Project
具体如下:pkbketx92#
spring添加了automagic mime类型处理,这取决于您拥有哪种依赖关系。如果您有一个json库,它期望调用者发送json并接受json。如果您有一个像jackson这样的xmlMap器,它只接受xml,并且只与接受xml的客户机通信。
确保客户始终拥有
Content-Type
收割台和Accept
设置。否则spring将返回404,意思是“我不知道如何解释该请求或将任何值返回给您”。不幸的是,spring没有记录为什么在这种情况下会在info级别发送404。您可能需要将日志级别设置为
DEBUG
在这种情况下。