Привет всем и спасибо за помощь.
Допустим, у меня есть:
@PUT
@Produces(MediaType.APPLICATION_JSON)
@Path("/endpoint")
public A createA(A a);
Модель A:
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
@JsonSubTypes({
@Type(value = IndividualParty.class, name = "B"),
@Type(value = CorporateParty.class, name = "C")
})
public class A {
private String id;
private String description;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
Модели B и C расширяют модель A .и у них разные поля.
У меня тоже есть модели запроса и ответа .Запрос сделан с A объектом.
Я использую аннотации наследования Джексона, и я использую soapUI для создания body .поэтому, когда я отлаживаю, я на самом деле могу видеть, является ли тип B или C.
Проблема в том, что в классе, который я получаю, у меня есть доступ только к полям A, и я не могу отобразить данные вAPI, таким образом, мне нужно иметь доступ к полям B и C, но модель запроса имеет только объект A для выполнения запроса, но, поскольку B и C расширяют, AI должен уметь делать это правильно?например:
public returnType method(CreateARequest request){}
Здесь я хочу сопоставить запрос, который я сделал в soapUI (body), с другими полями, которые находятся в другом месте.
например: someOtherRequest.SetName (request.getName ());
этот запрос может быть B или C, но у меня есть доступ только к полям A ... Даже если я делаю request.SetA (new B ());а затем Request.getA ().это тот же результат ...
любая идея ???спасибо