Объект, отправленный из интерфейса ts в серверную часть java, преобразуется в LinkedHashMap

У меня есть интерфейс машинописного текста, который общается с моим бэкэндом Java через REST. Я только что добавил еще одну простую конечную точку отдыха, но отправка объекта на бэкэнд и попытка его правильного приведения не работают, потому что отправленное тело является linkedHashMap?

сервис.тс

createEvent(event: CustomerEvent): Observable<HttpResponse<CustomerEvent>> {
    return this.http.post<CustomerEvent>(this.eventUrl, event, { observe: 'response' });
}

клиент-событие-model.ts

export class CustomerEvent {
    constructor(public customer: ICustomer, public event: String) {}
}

клиент.модель.тс

export interface ICustomer {
    id?: number;
    name?: string;
    email?: string;
    address?: string;
}

export class Customer implements ICustomer {
    constructor(public id?: number, public name?: string, public email?: string, public address?: string) {}
}

Отдых

public ResponseEntity<Object> addCustomerEvent(@RequestBody Object customerEvent) {
  log.info("~REST request to create new event " + customerEvent.toString());
  CustomerEvent e = (CustomerEvent) customerEvent; // <<---- FAILS cannot cast LinkedHashMap to CustomerEvent
}

Почему он отправляет LinkedHashMap?

Благодарность

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
75
1

Ответы 1

Вам нужно использовать:

@RequestBody CustomerEvent customerEvent

Так как это позволит Spring десериализовать тело запроса в экземпляр объекта CustomerEvent.

Ссылка: https://www.baeldung.com/spring-request-response-body

это то, что я сделал, и он правильно десериализует клиента, но не событие. он всегда остается нулевым.

M4V3N 24.01.2019 07:45

Другие вопросы по теме