내 모든 엔티티는 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;
}
실제로 POJO 바인딩에 기본 Jersey impl을 사용하는 Tomcat 8에 배포 된 JAX-RS / Jersey 웹 서비스 : MOXy.
내 문제는 예를 들어 내부에 JSON 엔터티가 포함 된 PUT 요청을 보낼 때 EntidadeBase 필드가 내 EndPoint 개체로 구문 분석되지 않는다는 것입니다.
예를 들면 다음과 같습니다.
@PUT
@Override
@Transactional(qualifier = ForTransaction.class)
public Response atualizar(@NotNull Abrangencia entidade) {
return super.atualizar(entidade);
}
MOXy가 상속 된 수퍼 클래스의 필드에 대한 JSON 값을 구문 분석하도록 관리하려면 어떻게해야합니까?
엔터티를 수정하는 데 시간을 투자 한 후 Java EE 7 기능 (Json-Pojo Bind 용 Jackson과 JAX-RS 용 RestEasy) 및 동일한 엔터티 / 리소스에 Wildfly 8.2 Impl을 사용하는 다른 유사한 아키타 입을 사용하여 몇 가지 테스트를 수행했습니다. / repository archetype과 그것은 매력처럼 작동했습니다. 그런 다음 문제가 MOXy라는 것을 깨달았으므로 Jackson을 사용하도록 프로젝트를 구성했습니다.
나는 이것을 대체하여 pom.xml을 수정했습니다.
<!-- MOXy -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>${moxy.version}</version>
</dependency>
이것으로 :
<!-- Jackson -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jackson.version}</version>
</dependency>
이 초기화 매개 변수를 내 web.xml에 추가했습니다.
<servlet>
<servlet-name>jax-rs</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>org.glassfish.jersey.config.property.packages</param-name>
<param-value>com.fasterxml.jackson.jaxrs</param-value>
</init-param>
...
이제 작동합니다 (-;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다