объект, отправленный из интерфейса ts в серверную часть Java, преобразуется в LinkedHashMap - PullRequest
0 голосов
/ 24 января 2019

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

service.ts

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

customer-event-model.ts

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

customer.model.ts

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) {}
}

Rest

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?

спасибо

1 Ответ

0 голосов
/ 24 января 2019

Вам необходимо использовать:

@RequestBody CustomerEvent customerEvent

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...