title: "Content type 'application/json;charset=UTF-8' not supported" in Spring Rest application
body: <p>When I do a POST request on <strong>localhost:8080/api/users</strong> to create a new user I get the following error :</p>
  
  <pre><code>{
      "timestamp": "2018-05-28T09:44:55.704+0000",
      "status": 415,
      "error": "Unsupported Media Type",
      "message": "Content type 'application/json;charset=UTF-8' not supported",
      "path": "/api/users/"
  }
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/B2FGc.png" rel="noreferrer"><img src="https://i.stack.imgur.com/B2FGc.png" alt="enter image description here"></a></p>
  
  <p>The is the request's body, JSON (application/json) is selected.
  It gives the same error even if I remove the Roles and keep it null.</p>
  
  <p><a href="https://i.stack.imgur.com/pLaj3.png" rel="noreferrer"><img src="https://i.stack.imgur.com/pLaj3.png" alt="enter image description here"></a></p>
  
  <p>The header's content type is application/json as well.</p>
  
  <p><a href="https://i.stack.imgur.com/2W0Ky.png" rel="noreferrer"><img src="https://i.stack.imgur.com/2W0Ky.png" alt="enter image description here"></a></p>
  
  <p>This is my controller : </p>
  
  <pre><code>@PostMapping("/api/users" )
  public User createUser(@Valid @RequestBody User user) {
      securityService.autologin(user.getUsername(), user.getPassword());
      return userService.createUser(user);
  }
  </code></pre>
  
  <p>createUser function in UserService :</p>
  
  <pre><code>public User createUser(@Valid @RequestBody User user) {
      user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
      user.setRoles(new HashSet&lt;&gt;(roleRepository.findAll()));
      return userRepository.save(user);
  }
  </code></pre>
  
  <hr>
  
  <h2>edit</h2>
  
  <p>This is my User class :</p>
  
  <pre><code>@Entity
  @Table(name = "user")
  @EntityListeners(AuditingEntityListener.class)
  @JsonIgnoreProperties(value = {"createdAt", "updatedAt"}, 
                        allowGetters = true)
  public class User implements Serializable{
  
      private static final long serialVersionUID = 1L;
  
  
      public User() {
          super();
          // TODO Auto-generated constructor stub
      }
  
      @Id
      @Column(name = "user_id")
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private long id;
  
      @Column(name = "user_name")
      private String name;
  
      @Column(name = "user_email")
      private String email;
  
      @Column(name = "user_password")
      @NotBlank
      private String password;
  
      @Column(name = "user_status")
      private String status;
  
      @Column(name = "user_tel")
      private String tel;
  
      @Column(name = "user_confirmation")
      private String confirmation;
  
      @Column(name = "user_birth_date")
      @Temporal(TemporalType.DATE)
      private Date birth_date;
  
      @Column(nullable = false, updatable = false)
      @Temporal(TemporalType.TIMESTAMP)
      @CreatedDate
      private Date createdAt;
  
      @Column(nullable = false)
      @Temporal(TemporalType.TIMESTAMP)
      @LastModifiedDate
      private Date updatedAt;
  
      @JsonManagedReference
      @ManyToMany
      @JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
      private Set&lt;Role&gt; roles;
  
      @Column(name = "username")
      @NotBlank
      private String username;
  
      public long getId() {
          return id;
      }
  
      public void setId(long id) {
          this.id = id;
      }
  
      public String getName() {
          return name;
      }
  
      public void setName(String name) {
          this.name = name;
      }
  
      public String getUsername() {
          return username;
      }
  
      public void setUsername(String username) {
          this.username = username;
      }
  
      public String getEmail() {
          return email;
      }
  
      public void setEmail(String email) {
          this.email = email;
      }
  
      public String getPassword() {
          return password;
      }
  
      public void setPassword(String password) {
          this.password = password;
      }
  
      public String getStatus() {
          return status;
      }
  
      public void setStatus(String status) {
          this.status = status;
      }
  
      public String getTel() {
          return tel;
      }
  
      public void setTel(String tel) {
          this.tel = tel;
      }
  
      public String getConfirmation() {
          return confirmation;
      }
  
      public void setConfirmation(String confirmation) {
          this.confirmation = confirmation;
      }
  
      public Date getBirth_date() {
          return birth_date;
      }
  
      public void setBirth_date(Date birth_date) {
          this.birth_date = birth_date;
      }
  
      public Date getCreatedAt() {
          return createdAt;
      }
  
      public Date getUpdatedAt() {
          return updatedAt;
      }
  
      public void setUpdatedAt(Date updatedAt) {
          this.updatedAt = updatedAt;
      }
  
      public Set&lt;Role&gt; getRoles() {
          return roles;
      }
  
      public void setRoles(Set&lt;Role&gt; roles) {
          this.roles = roles;
      }
  }
  </code></pre>