2015-11-09 4 views
1

Я работаю над клиентским интерфейсом API, который может выполнять поиск по различным объектам. Все функции поиска возвращают список объектов, таких как:Джерси клиент получает список объектов с общим типом

{ 
    score : ... 
    object : {} 
} 

Оценка, насколько относительный результат и объект является самим объектом. То, что я хотел бы сделать, - это реализовать POJO Result<T>, который может обрабатывать результаты для различных объектов с помощью Jersey/MOXy, но я не уверен, как это сделать (или даже если это возможно). Мысли?

Я пытался создавать Result объект с атрибутом T item, аннотирования его с @XmlAnyElement и демаршаллизации с помощью response.readEntity(new GenericType<List<Result<Object>>>(){});, но он всегда возвращается нуль.

+0

Я никогда не делал этого, поэтому не уверен, что это сработает, но, может быть, суперкласс класса с кучей детей? – xdhmoore

+0

Возможно, это работает - вы имеете в виду один ребенок на каждый тип объекта? Может быть, я сделаю это - просто надеялся на что-то немного легче. Благодаря! – RNGuy

+0

Да, это то, о чем я думал. Idk, не так хорошо, как вы делали. – xdhmoore

ответ

2

Erm ... получается, что мой подход был в конце концов. Мои объекты не были аннотированы с помощью @XmlRootElement, потому что в других вызовах это не было необходимо. Это оставило объекты ElementNSImpl. Поэтому ответ на мой вопрос в основном находится в вопросе. Также необходимо было добавить @XmlAnyElement(lax=true) в атрибут T.