Marshalling JSON to JAXB annotated POJO returns "null" in RESTEasy client on EAP

Solution Verified - Updated -

Issue

  • We are experiencing a content marshalling issue with EAP 6 when marshalling JSON to JAXB annotated POJO.
  • According to the RESTEasy documentation, "RESTEasy allows you to marshall JAXB annotated POJOs to and from JSON. This provider wraps the Jettison JSON library to accomplish this." But it is not working in my case.
  • Below is the actual POJO class (note that we added @JsonIgnoreProperties(ignoreUnknown = true) annotation):
@JsonIgnoreProperties(ignoreUnknown = true) 
@XmlRootElement(name="return")
public class MyResponse {
    private List<Post> posts;

    @XmlElementWrapper(name = "messages")
    @XmlElement(name = "message")
    public List<Post> getPosts() { return posts; }

    public void setPosts(List<Post> posts) { this.posts = posts; }
}
  • And the JSON string I am receiving after posting a message:
{
    "should_be_ignored": {},
    "messages": [
        { ... }
    ],
    ...
}
  • Here is the RESTEasy client code running on EAP:
import org.jboss.resteasy.client.ClientRequest;
import org.jboss.resteasy.client.ClientResponse;

ClientRequest clientRequest = new ClientRequest("https://...");
ClientResponse<MyResponse> response = clientRequest.get(MyResponse.class);
MyResponse myResponse = response.getEntity();
  • However, all the time the "posts" field in MyResponse is bound to null when marshalling the received JSON to POJO.

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 5.x
    • 6.x
  • RESTEasy

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content