[SPRING] JBoss resteasy - 사용자 지정 Jackson 공급자
SPRINGJBoss resteasy - 사용자 지정 Jackson 공급자
스프링 부트 애플리케이션에서 JBoss resteasy를 사용하고 있습니다. 아래 사용자 정의 JasonProvider로 구성하고 com.fasterxml.jackson을 사용하십시오.
@Provider
@Priority(value=1)
@Consumes({ "application/*+json", "text/json" })
@Produces({ "application/*+json", "text/json" })
public class JsonProvider extends JacksonJsonProvider {
public static final PeriodFormatter STANDARD_ISO_PERIOD_FORMAT = ISOPeriodFormat.standard();
public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper().configure(WRITE_DATES_AS_TIMESTAMPS, false).configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
.setDateFormat(ISO8601_WITH_MILLIS);
static {
final SimpleModule module = new SimpleModule("JsonProviderModule", new Version(1, 0, 0, null, null, null));
module.addSerializer(Date.class, new DateSerializer());
module.addDeserializer(Date.class, new DateDeserializer());
OBJECT_MAPPER.registerModule(module);
}
public JsonProvider() {
super(OBJECT_MAPPER);
}
}
내 클라이언트 코드에서,
final Client client = factory.getClient();
client.register(jsonProvider);
jsonProvider가 등록되어 있지만 전화를 걸면 내 jsonProvider를 호출하지 않습니다.
그것은 resteasy 버전 3.0.14.finial과 함께 잘 작동했습니다.
최근에 3.1.4로 업그레이드되었습니다. 최종 및 몇 가지 다른 항아리도 있습니다. 최신 버전의 사용자 정의 JsonProvider를 사용하지 않는 이유를 잘 모릅니다.
등록 할 다른 방법이 있습니까?
관련 pom 항목,
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>3.1.4.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-validator-provider-11</artifactId>
<version>3.1.4.Final</version>
</dependency>
유효성을 검사 할 다른 POM 충돌이 있습니까?
감사
해결법
-
==============================
1."application / json"을 다른 주석과 함께 추가하면 문제가 해결됩니다.
"application / json"을 다른 주석과 함께 추가하면 문제가 해결됩니다.
@Provider @Consumes({ "application/json","application/*+json", "text/json" }) @Produces({ "application/json","application/*+json", "text/json" }) public class JsonProvider extends JacksonJsonProvider {
Spring은 match와 weightage에 기반하여 우선 순위를 설정한다. 기본 JsonProvider는 버전 3.1.0에서 "application / json"주석을 추가 했으므로 기본 공급자가 우선 적용되므로 "application / json"을 사용자 지정 JsonProvider에 추가하면 문제가 해결되었습니다.
from https://stackoverflow.com/questions/47838240/jboss-resteasy-custom-jackson-provider by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 주어진 도메인 클래스에 대한 스프링 데이터 저장소 인스턴스를 검색하는 방법은 무엇입니까? (0) | 2019.07.16 |
---|---|
[SPRING] MessageSource가 특성 파일을 다시로드하지 않습니다. (0) | 2019.07.16 |
[SPRING] HTTP 요청의 리턴 상태가 401 일 때 자바에서 응답 본문을 파싱하는 방법 (0) | 2019.07.15 |
[SPRING] RestTemplate을 오프라인으로 사용하여 클래스를 unittest하는 방법은 무엇입니까? (0) | 2019.07.15 |
[SPRING] Thymeleaf의 입력 유효성 검사 (0) | 2019.07.15 |