[SPRING] @ JsonProperty 예상대로 작동하지 않습니다.
SPRING@ JsonProperty 예상대로 작동하지 않습니다.
Spring RestTemplate을 사용하여 편안한 웹 서비스를 사용할 때 다음 예외가 발생합니다.
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "IMP-SourceTxnId" (class com.model.ResponseBaseParameters) not marked as ignorable (4 known properties: , "sourceTxnId", "incommTxnId", "responseCode", "responseText"])
at [Source: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@2f2ddd7c; line: 1, column: 130] (through reference chain: com.incomm.ife.model.rogers.RogersTransactionResponse["responseBaseParameters"]->com.incomm.ife.model.rogers.ResponseBaseParameters["IMP-SourceTxnId"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:79)
at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:555)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:708)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1159)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:315)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:449)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:98)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:295)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2094)
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readInternal(MappingJackson2HttpMessageConverter.java:123)
... 54 more
응답 매개 변수는
{
"responseBaseParameters":
{
"responseCode": "32",
"responseText": "Invalid Request",
"incommTxnId": null,
"IMP-SourceTxnId": "551932ba-6af4-44f9-ab98-db5bc96e962b"
}
}
내 POJO 클래스는
public class ResponseBaseParameters {
private String responseCode;
private String responseText;
private String incommTxnId;
@JsonProperty("IMP-SourceTxnId")
private String sourceTxnId;
public String getResponseCode() {
return responseCode;
}
public void setResponseCode(String responseCode) {
this.responseCode = responseCode;
}
public String getResponseText() {
return responseText;
}
public void setResponseText(String responseText) {
this.responseText = responseText;
}
public String getIncommTxnId() {
return incommTxnId;
}
public void setIncommTxnId(String incommTxnId) {
this.incommTxnId = incommTxnId;
}
public String getSourceTxnId() {
return sourceTxnId;
}
public void setSourceTxnId(String sourceTxnId) {
this.sourceTxnId = sourceTxnId;
}
}
왜이 오류가 발생하는지에 대한 통찰력을주십시오. 감사
해결법
-
==============================
1."REST API"에 대한 많은 구현이 있으며 서로 충돌합니다. 많은 시간이 지나면이 구성으로 해결했습니다.
"REST API"에 대한 많은 구현이 있으며 서로 충돌합니다. 많은 시간이 지나면이 구성으로 해결했습니다.
import com.fasterxml.jackson.annotation.JsonProperty; ... @JsonProperty("cep") private String cep;
이 패키지에 org.codehaus가 아닌 JsonProperty가 있어야합니다 ...
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.19</version> <scope>test</scope> </dependency>
요약하면 : 저지 클라이언트 1, jackson json 속성 및 다른 모든 jaxrc 라이브러리를 제거합니다.
Obs :. 컨테이너가 이미 제공되었으므로 jackson을 사용했지만 작동한다면 다른 조합을 테스트 할 수 있습니다.
from https://stackoverflow.com/questions/21125173/jsonproperty-not-working-as-expected by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring에서 여러 데이터베이스 초기화하기 (0) | 2019.04.12 |
---|---|
[SPRING] Spring Batch - 입력 csv 파일의 헤더 행을 검증하고 파일이 무효화되면 건너 뜁니다. (0) | 2019.04.12 |
[SPRING] 스프링 부트 jms를 사용하여 주제를 듣는 법 (0) | 2019.04.12 |
[SPRING] RestTemplate을 사용한 기본 인증 - 컴파일 오류 - 생성자 HttpClient ()가 표시되지 않습니다. (0) | 2019.04.12 |
[SPRING] Scala.Option을위한 Spring RequestParam 포매터 (0) | 2019.04.12 |