简体   繁体   English

@JsonProperty没有按预期工作

[英]@JsonProperty not working as expected

I get the following exception when i consume a restful webservice using Spring RestTemplate 当我使用Spring RestTemplate使用一个restful webservice时,我得到以下异常

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

The response parameter is 响应参数是

{

  "responseBaseParameters":  

{

  "responseCode": "32",

  "responseText": "Invalid Request",

  "incommTxnId": null,

  "IMP-SourceTxnId": "551932ba-6af4-44f9-ab98-db5bc96e962b"

 }

}

and my POJO class is 而我的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;
}

}

Please any insight as to why i am getting this error. 请知道为什么我收到此错误。 Thanks 谢谢

There are many implementations of "REST API" and they conflict with each other. 有许多“REST API”的实现,它们相互冲突。 After a lot of time, I resolved it with this configuration: 经过很长时间,我用这个配置解决了它:

import com.fasterxml.jackson.annotation.JsonProperty;
...
@JsonProperty("cep")
private String cep;

Must have that JsonProperty with this package not org.codehaus... 必须有这个包的JsonProperty而不是org.codehaus ...

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.19</version>
    <scope>test</scope>
</dependency>

In summary: jersey client 1, jackson json property and remove all others jaxrc libs . 总结:jersey客户端1,jackson json属性并删除所有其他jaxrc libs

Obs:. OBS:。 I used jackson because the container already provided, but, if it works for you, you could test another combinations. 我使用了jackson,因为容器已经提供,但是,如果它适用于你,你可以测试另一种组合。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 @JsonProperty 在 springboot 升级后不起作用 - @JsonProperty not working after springboot upgrade @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)不起作用 - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) not working 编组时 Java JsonProperty 注释不起作用 - Java JsonProperty annotation not working when marshalling Spring-data-elasticsearch @JsonProperty 不起作用 - Spring-data-elasticsearch @JsonProperty not working 使用@JsonCreator和d @JsonProperty未能按预期生成Json响应 - Json response not generated as expected using @JsonCreator andd @JsonProperty JsonProperty 和字段注释不能在 Java Spring 框架中一起工作? - JsonProperty and Field Annotation not working together in Java Spring Framework? Jackson xml 2.9.0:@JacksonXmlElementWrapper 不能与 @JsonCreator 和 @JsonProperty 构造函数一起使用 - Jackson xml 2.9.0: @JacksonXmlElementWrapper not working with @JsonCreator & @JsonProperty constructor 如果属性名称不等于字段名称,Jackson @JsonProperty 不起作用 - Jackson @JsonProperty not working if property name not equal field name JsonProperty.Access.READ_ONLY 不适用于嵌套对象 (Jackson) - JsonProperty.Access.READ_ONLY not working with nested objects (Jackson) @JsonProperty @JsonIgnoreProperties - @JsonProperty @JsonIgnoreProperties
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM