title: How to get Jackson to use its JsonSerializable Interface?
body: <p>Jackson docs say that a class that implements their <strong>JsonSerializable</strong> interface will be serialized by calling the Interface's serialize() method.</p>
  
  <p>I tried this in a project that uses Jackson 2.8.4 under Jersey 2.25. </p>
  
  <p>It continues to use Jackson's BeanSerializer to do default serialization based on public getters, instead of using the SerializableSerializer and the serialize() method.</p>
  
  <p>Code looks like this fairly minimal example...</p>
  
  <pre><code>public class Minimal extends JsonSerializable.Base {
  
    private String title;
    private ZonedDateTime theTime;
  
  
    public String getTitle() { return title; }
    void setTitle(String title) { this.title = title; }
    public ZonedDateTime getTheTime() { return theTime; }
    void setTheTime(ZonedDateTime theTime) { this.theTime = theTime; }
  
    @Override
    public void serialize(JsonGenerator gen, SerializerProvider serializers) throws IOException {
      gen.writeStartObject();
      gen.writeFieldName("title");
      gen.writeString(this.title);
      // Other serialization...
      gen.writeEndObject();
    }
  
    @Override
    public void serializeWithType(JsonGenerator gen, SerializerProvider serializers, TypeSerializer typeSer) throws IOException {
      throw new UnsupportedOperationException("Not supported."); 
    }
  }
  </code></pre>
  
  <p>I also tried other ideas to get it using the right serializer...maybe foolish ideas like...</p>
  
  <pre><code>public class Minimal implements JsonSerializable {
  </code></pre>
  
  <p>and</p>
  
  <pre><code>@JsonSerialize(using = SerializableSerializer.class)
  public class Minimal extends JsonSerializable.Base {
  </code></pre>
  
  <p>and</p>
  
  <pre><code>@JsonSerialize(as = JsonSerializable.Base.class)
  public class Minimal extends JsonSerializable.Base {
  </code></pre>
  
  <p>What am I missing to get this Jackson feature working?</p>
  
  <p>I verified in Jackson's latest source code that the feature still exists. I suppose I can trace it through the 2.8.4 source in the debugger, but maybe someone knows the answer.</p>