gpt4 book ai didi

java - 使用 Jersey 默认实现 : MOXy 反序列化多态类型

转载 作者:太空宇宙 更新时间:2023-11-04 14:05:45 24 4
gpt4 key购买 nike

我的所有实体都继承自名为 EntidadeBase 的类:

@MappedSuperclass
public abstract class EntidadeBase implements Serializable {

private static final long serialVersionUID = -3912856473903279467L;

@Id
@QueryParam("id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@PodamStrategyValue(value = NullStrategy.class)
private Long id;

@Column(name = "cadastro_data", nullable = false)
@PodamStrategyValue(value = PastDateStrategy.class)
private LocalDate dataCadastro;

@Column(name = "modificado_data", nullable = false)
@PodamStrategyValue(value = PastDateStrategy.class)
private LocalDate dataModificacao;

@QueryParam("modificado")
@Column(nullable = false)
@PodamBooleanValue(boolValue = false)
private Boolean modificado;

@QueryParam("ativo")
@Column(nullable = false)
@PodamBooleanValue(boolValue = true)
private Boolean ativo;
}

它是部署在 tomcat 8 上的 JAX-RS/Jersey Web 服务,实际上使用默认的 Jersey impl 进行 POJO 绑定(bind):MOXy。

我的问题是,例如,当我发送其中包含 JSON 实体的 PUT 请求时,EntidadeBase 字段不会解析为我的 EndPoint 对象

这是一个例子:

@PUT
@Override
@Transactional(qualifier = ForTransaction.class)
public Response atualizar(@NotNull Abrangencia entidade) {
return super.atualizar(entidade);
}

我怎样才能让 MOXy 解析 JSON 值到继承的父类(super class)的字段?

最佳答案

首先,here据说,您应该添加依赖项以启用 MOXy:

<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>2.16</version>
</dependency>

然后,here您可以看到将 MOXy 与 Jersey 结合使用的示例。您需要解析的 Bean 应该具有根注释 @XmlRootElement(即使对于 JSON:))。另外,类的可序列化成员应该在类中定义 getter 和 setter。

关于java - 使用 Jersey 默认实现 : MOXy 反序列化多态类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28887647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com