Hallo,
Leider gelingt es mir nicht mit Jersey ein Objekt-Feld zu deserialisieren, das bswp. einen String enthält. Hat jemand eine Ahnung, was ich tun kann, um das Problem zu lösen.
Hier mein Code:
Das seralisierte Objekt sieht wie folgt aus:
Als Ausgabe erhalte ich:
Anscheinend wird der String nicht deseralisiert, sondern einfach als Wert in die Variable
geschrieben. Was kann ich hier tun?
Leider gelingt es mir nicht mit Jersey ein Objekt-Feld zu deserialisieren, das bswp. einen String enthält. Hat jemand eine Ahnung, was ich tun kann, um das Problem zu lösen.
Hier mein Code:
Java:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class ReturnValue{
private Object data;
public ReturnValue() { }
public ReturnValue(Object data) {
this.data = data;
}
public Object getData() {
return data;
}
@Override
public String toString() {
return "ReturnValue [data=" + data + "]";
}
}
Java:
public class MyClient {
private String location = "http://localhost:9998/test";
private Client client;
private WebResource resource;
public MyClient() {
init();
}
private void init() {
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
client = Client.create(clientConfig);
resource = client.resource(location);
}
private void test() {
ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
ReturnValue value = response.getEntity(ReturnValue.class);
System.out.println(value);
}
public static void main(String[] args) {
MyClient client = new MyClient();
client.test();
}
}
Java:
@Singleton
@Path("/test")
public class Test {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Object get() {
return Response.ok(new ReturnValue("TEST_SERVER")).build();
}
}
Das seralisierte Objekt sieht wie folgt aus:
Code:
{"data":{"@type":"xs:string","$":"TEST_SERVER"}}
Als Ausgabe erhalte ich:
Code:
ReturnValue [data={@type=xs:string, $=TEST_SERVER}]
Anscheinend wird der String nicht deseralisiert, sondern einfach als Wert in die Variable
Code:
data