I'm setting up a Rest Server along with client and i'm facing a problem for few hours already. When i call getPoints() method everything works fine, but when i call getPoint(Long id), deletePoint(Long id) and postPoint() i'm getting: Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 404 null.
Client Side:
public List<Point> getPoints()
{
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<List<Point>> pointResponse = restTemplate.exchange("http://localhost:5000/points", HttpMethod.GET, null,
new ParameterizedTypeReference<List<Point>>()
{});
List<Point> points = pointResponse.getBody();
return (points);
}
public Point getPoint(long id)
{
RestTemplate restTemplate = new RestTemplate();
Point point = restTemplate.getForObject("http://localhost:5000/points" + id, Point.class);
return point;
}
public void postPoint()
{
RestTemplate restTemplate = new RestTemplate();
restTemplate.postForObject("http://localhost:5000/points", this, this.getClass());
}
public void deletePoint(Long id)
{
RestTemplate restTemplate = new RestTemplate();
restTemplate.delete("http://localhost:5000/points" + id);
}
Server Side:
public class PointsController {
private final PointsRepository repository;
PointsController(PointsRepository repository){
this.repository=repository;
}
@GetMapping("/points/")
List<Points> all() {
return repository.findAll();
}
@PostMapping("/points/")
Points newPoints(@RequestBody Points newPoints){
return repository.save(newPoints);
}
@GetMapping(value = "/points/{id}/", produces = "application/json; charset=UTF-8")
Resource<Points> one(@PathVariable Long id) {
Points point = repository.findById(id).orElseThrow(() -> new PointsNotFoundException(id));
return new Resource<>(point,
linkTo(methodOn(PointsController.class).one(id)).withSelfRel(),
linkTo(methodOn(PointsController.class).all()).withRel("points"));
}
@DeleteMapping("/points/{id}/")
void deletePoints(@PathVariable Long id) {
repository.deleteById(id);
}
}
What can cause the problem ? When i put on browser address: http://localhost:5000/points/1 i'm normally getting point with id 1.
/