Я работаю на JBoss
6.1.4
и использовал Jackson
V1
. После изменения моих зависимостей на эталонную версию 2.4.4
(и изменения всех включений на версии fastxml) похоже, что @JsonSerialize
игнорируется. Вместо String
(из сериализатора) он возвращает класс как JSON
, который должен был быть сериализован. Ведение журнала и System.out
внутри сериализатора не отображаются.
Я не вносил никаких изменений в код, кроме изменения включений для использования fastxml.
public class HiDateSerializer extends JsonSerializer<HiDate> {
@Override
public void serialize(final HiDate value, final JsonGenerator gen, final SerializerProvider sp) throws IOException, JsonProcessingException {
if (value == null || value.isNull()) {
gen.writeString("");
} else {
gen.writeString(value.fmt());
}
}
}
Затем в моем классе модели я использую аннотацию для всех атрибутов HiDate
:
@JsonSerialize(using = HiDateSerializer.class)
private HiDate dob;
Вот моя зависимость:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
Раньше я получал либо пустую строку, либо строку только с датой. Однако теперь я получаю представление JSON
всего класса HiDate
. Как будто @JsonSerialize
больше не соблюдается.
org.codehaus.*
? - person Michał Ziober   schedule 16.02.2019JBoss
возможно все еще использует реализациюcodehaus
, которая включена в установкуJBoss
. Ваше веб-приложение, вероятно, по умолчанию используетcodehause
маппер, и вам нужно определить и зарегистрировать маппер изfasterxml
в вашем приложении вручную. - person Michał Ziober   schedule 16.02.2019ObjectMapper
изfasterxml
, и это должно решить проблему. - person Michał Ziober   schedule 17.02.2019JBOSS
, поэтому ваше приложение, вероятно, является веб-приложением. Вы используетеSpring
или что-то еще? - person Michał Ziober   schedule 19.02.2019HTTPRequest
и обслуживания страниц? - person Michał Ziober   schedule 19.02.2019