0

在 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"
}
4

0 回答 0