title: missing property '@type' that is to contain type id when using abstract class
body: <p>I am using Spring Boot 1.5.8.RELEASE and handling two DTOs which have lots of fields in common so I created an abstract DTO.</p>
  
  <p>I hoped that Jackson would always select the appropriate concrete DTO for the HTTP-POST.</p>
  
  <p>I created this Abstract DTO like this :</p>
  
  <pre><code>@JsonIgnoreProperties(ignoreUnknown = true)
  @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY)
  @JsonSubTypes({
      @JsonSubTypes.Type(value = InViewModel.class),
      @JsonSubTypes.Type(value = In2ViewModel.class) })
  public abstract class AbstractInAndIn2ViewModel {..}
  </code></pre>
  
  <p>The concrete DTOs look like this :</p>
  
  <pre><code>public class InViewModel extends AbstractInAndIn2ViewModel {..}
  </code></pre>
  
  <p>and  </p>
  
  <pre><code>public class In2ViewModel extends AbstractInAndIn2ViewModel {..}
  </code></pre>
  
  <p>My converter class which handles the DTO to DAO conversion looks like this :</p>
  
  <pre><code>public void convertDTO_To_DAO(AbstractInAndIn2ViewModel abstInView) {
  
          if (abstInView instanceof InViewModel) {
  
          InViewModel inView=(InViewModel)abstInView;
          In in = new In();
          in.setName(inView.getName());
          ...
          }
          if (abstInView instanceof In2ViewModel) {
  
          In2ViewModel in2View=(In2ViewModel)abstInView;
          In2 in2 = new In2();
          in2.setName(in2View.getName());
          ...
          }
  </code></pre>
  
  <p>The HTTP-POST call looks like this :</p>
  
  <pre><code>@PostMapping(value = "/item/input")
  public ResponseEntity&lt;Void&gt; createInput(@RequestBody @Valid AbstractInAndIn2ViewModel input) {..}
  </code></pre>
  
  <p>Unfortunately, I am always getting the error message :</p>
  
  <blockquote>
    <p>Unexpected token (END_OBJECT), expected FIELD_NAME: missing property
    '@type' that is to contain type id</p>
  </blockquote>