У меня есть много классов DTO i мой проект, который сериализуется для json, который будет использоваться для конечных точек отдыха. Все расширяются (прямые или косвенные) абстрактный класс «Linkable», который содержит идентификатор объектов и создает личную ссылку с использованием инъецированного «UriInfo». Чтобы получить эту работу, мне нужно вводить экземпляры DTO. Это все работает нормально.Невозможно сериализовать (json) объект, потому что сваривает ящик прокси «обработчик нераспознанного поля»
В последнее время я создал 2 других DTO, которые имеют дополнительный уровень в иерархии.Проблема заключается в том, что если я пытаюсь внедрить экземпляры этих классов, я получаю прокси (созданный с помощью сварки). Эти прокси содержат дополнительные поля, которые не могут быть сериализованы, потому что они неизвестны (без геттеров или сеттеры): com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "handler"
Так что мой вопрос: Почему создается прокси-сервер, а не сам класс. В качестве обходного пути: могу ли я отметить дополнительные поля, которые нужно каким-то образом игнорировать (прокси-подкласс)?
Вот код части иерархии отличается от рабочих DTOS (CreatedByUserRepresentation расширяет Linkable):
public abstract class VoteRepresentation<T extends CreatedByUserRepresentation> extends CreatedByUserRepresentation{
@NotNull
private T voteOf;
@Min(-1) // down vote
@Max(1) // up vote
private int value;
@AssertTrue
public boolean valueIsNotZero() {
return value != 0;
}
public T getVoteOf() {
return voteOf;
}
public int getValue() {
return value;
}
public void setVoteOf(T voteOf) {
this.voteOf = voteOf;
}
public void setValue(int value) {
this.value = value;
}
}
Фактический класс:
@XmlRootElement(name = "problemvote", namespace = "urn:problems:problemvote")
public class ProblemVoteRepresentation extends VoteRepresentation<ProblemRepresentation> {
@Override
protected Class<?> getResourceClass() {
return ProblemVoteResource.class;
}
}
Существует еще одно расширение «VoteRepresentation ». У обоих одинаковая проблема: через cdi я могу получить только экземпляры «прокси» с дополнительными полями, которые не могут быть сериализованы. Было бы достаточно получить некоторые подсказки, почему используется прокси-сервер. Я только читал о сфере охвата. но в этом случае класс, который вводит dto, все «RequestScoped».