Quarkus PUT主体参数:在超类型对象内反序列化子类型时出错

问题描述

在Quarkus中,我公开了一种PUT方法,该方法可以修改动物(可以是狗或猫)

这是我想要的方法签名:

@PUT
@Path("{id}")
public Response updateAnimal(@PathParam Long id,Animal animal) {}

我希望前端发送狗或猫,它们会在Quarkus中反序列化为动物。 但是当前端发送“狗”或“猫”时,我会收到此错误:

严重[org.ecl.yas.int.Unmarshaller](executor-thread-199)无法创建实例

前端会发送一个具有Dog或Cat的所有属性的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;
}

前端在正文中发送的json示例:

{
   "name": "toto","dogAttribute": "dog"
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...