Это из-за этой строки:
printf ("Hi %s,</br />", $name);
Вы не должны печатать / эхо ничего, прежде чем отправлять заголовки.
Вам необходимо добавить аннотацию JsonTypeInfo
на уровне класса:
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"code",
"message",
"payload"
})
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "@type")
class Train {
include
по умолчанию имеет значение JsonTypeInfo.As.PROPERTY
, поэтому вам не нужно указывать его.
См. Также: