Content type 'text/plain;charset=UTF-8' not supported error in spring boot inside RestController class

nadavgam picture nadavgam · Dec 1, 2017 · Viewed 30.6k times · Source

I got the following @RestController inside a spring boot application :

@Data
@RestController
public class Hello {

    @Autowired
    private ResturantExpensesRepo repo;

    @RequestMapping(value = "/expenses/restaurants",method = RequestMethod.POST,consumes =MediaType.APPLICATION_JSON_VALUE ,
            headers = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public void hello(@RequestBody ResturantExpenseDto dto)
    {
        Logger logger = LoggerFactory.getLogger("a");
        logger.info("got a request");

        ResturantExpenseEntity resturantExpenseEntity = new ResturantExpenseEntity();
        resturantExpenseEntity.setDate(new Date(System.currentTimeMillis()));
        resturantExpenseEntity.setName(dto.getName());
        resturantExpenseEntity.setExpense(dto.getExpense());
        repo.save(resturantExpenseEntity);
    }
}

When I try to send request from restClient/RestedClient (both addons of mozila) I get the following error :

{ "timestamp": 1512129442019, "status": 415, "error": "Unsupported Media Type", "message": "Content type 'text/plain;charset=UTF-8' not supported", "path": "/expenses/restaurants" }

This eror states that the end point doesnt support Json content,But I did put

consumes =MediaType.APPLICATION_JSON_VALUE

inside @RequestMapping annotation

What am I missing?

Answer

Tarek picture Tarek · Sep 6, 2018

Late response but I had the same problem posting the answer it might be useful to someone so I installed Postman and then just change your Content-Type to application/json