I have the following JSON being returned from a RESTful Service
{
    "Status": "Success",
    "Success": true,
    "Path": "D:\\Work\\Sites\\EKSites\\OnTrek\\privateassets\\0\\155\\156\\ceb3dc64-33ed-4e96-80a2-846120ecd9ee.pdf",
    "Timestamp": "2013-03-27T18:35:23.8997358-04:00"
}
I am trying to deserialize the JSON into this data class:
package ektron.cms.jdbc.extractors;
@JsonPropertyOrder({ "Status", "Success", "Path", "Timestamp" })
public class AssetDataResponse {
    @JsonProperty("Status")
    private String Status;
    @JsonProperty("Success")
    private Boolean Success;
    @JsonProperty("Path")
    private String Path;
    @JsonProperty("Timestamp")
    private String Timestamp;
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
    @JsonProperty("Status")
    public String getStatus() {
        return Status;
    }
    @JsonProperty("Status")
    public void setStatus(String Status) {
        this.Status = Status;
    }
    @JsonProperty("Success")
    public Boolean getSuccess() {
        return Success;
    }
    @JsonProperty("Success")
    public void setSuccess(Boolean Success) {
        this.Success = Success;
    }
    @JsonProperty("Path")
    public String getPath() {
        return Path;
    }
    @JsonProperty("Path")
    public void setPath(String Path) {
        this.Path = Path;
    }
    @JsonProperty("Timestamp")
    public String getTimestamp() {
        return Timestamp;
    }
    @JsonProperty("Timestamp")
    public void setTimestamp(String Timestamp) {
        this.Timestamp = Timestamp;
    }
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
    @JsonAnyGetter
    public Map<String, Object> getAdditionalProperties() {
        return this.additionalProperties;
    }
    @JsonAnySetter
    public void setAdditionalProperties(String name, Object value) {
        this.additionalProperties.put(name, value);
    }
}
Following is my client code:
package ektron.common.network;
//...
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
clientConfig.getClasses().add(JacksonJsonProvider.class);
client = Client.create(clientConfig);
WebResource webResource = 
    client.resource(
            String.format("http://%s:%d/%s","localhost",7605,"asset"));
String return =             
webResource
    .path("3f7078c4")
    .path("ceb3dc64-33ed-4e96-80a2-846120ecd9ee")
    .accept(MediaType.APPLICATION_JSON)
    .get(String.class); //This piece works and I get my JSON response as 
                        //indicated above
But if I change the above to:
AssetDataResponse resp = 
        webResource
            .path("3f7078c4")
            .path("ceb3dc64-33ed-4e96-80a2-846120ecd9ee")
            .accept(MediaType.APPLICATION_JSON)
            .get(AssetDataResponse.class); 
I get the following error:
Unrecognized field "Status" (Class ektron.cms.jdbc.extractors.AssetDataResponse), not marked as ignorable
Is there any configuration on ClientConfig that I need to make to get the deserialization working correctly? Any help on this would be very much appreciated. I am .NET developer quite new to Java and am not so familiar with the Jersey framework. I have already checked the answer from a similar question and my case is different from the case listed there.
Client side Jars
- annotations-1.3.9.jar
- asm-3.1.jar
- codemodel-2.4.1.jar
- jackson-annotations-2.1.2.jar
- jackson-core-2.1.3.jar
- jackson-core-asl-1.9.11.jar
- jackson-databind-2.1.3.jar
- jackson-jaxrs-1.9.2.jar
- jackson-mapper-asl-1.9.11.jar
- jackson-xc-1.9.2.jar
- jcommander-1.30.jar
- jersey-apache-client-1.17.jar
- jersey-atom-abdera-1.17.jar
- jersey-client-1.17.jar
- jersey-core-1.17.jar
- jersey-guice-1.17.jar
- jersey-json-1.17.jar
- jersey-multipart-1.17.jar
- jersey-server-1.17.jar
- jersey-servlet-1.17.jar
- jettison-1.1.jar
- jsr311-api-1.1.1.jar
- validation-api-1.0.0.GA.jar
 
    