在 Quarkus 中,我公开了一个 PUT 方法,该方法允许修改动物,可以是狗或猫
这是我想要的方法签名:
@PUT
@Path("{id}")
public Response updateAnimal(@PathParam Long id, Animal animal) {}
我希望前端发送一只狗或一只猫,它们将被反序列化为 Quarkus 中的动物。但是当前端发送狗或猫时,我收到此错误:
严重 [org.ecl.yas.int.Unmarshaller] (executor-thread-199) 无法创建实例
前端发送一个包含狗或猫所有属性的 json 对象,我很确定 Quarkus 无法将 json 转换为超类型对象。
public abstract class Animal {
private String name;
...
}
public class Dog extends Animal {
private String dogAttribute;
...
}
public class Cat extends Animal {
private String catAttriute;
}
前端在body中发送的json示例:
{
"name": "toto",
"dogAttribute": "dog"
}