Отмена выделения коллекции JAXB при неудачном использовании IDResolver из-за того, что объект IDResolver в качестве целевого типа

У меня есть эта проблема, когда я пытаюсь разблокировать json от rest webservice (cxf). Я использую JAXB и EclipseLink.

Сущность отображается так:

@Entity
@Table(name = "service_pkg_service", schema = "MD")
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class ServicePkgService extends DatabaseModel implements java.io.Serializable {

    @Transient
    @XmlIDREF
    private Set channelPkgServices = new HashSet();
}

@Entity
@Table(name = "channel_pkg_service", schema = "MD")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class ChannelPkgService extends DatabaseModel  implements java.io.Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "CHANNEL_PKG_ID")
    @XmlID
    @XmlAttribute
    private String id;

}

У меня есть класс, расширяющий IDResolver, поэтому я могу генерировать сущность на основе ее идентификатора.

public class EntityIDResolver extends IDResolver{

@Override
public void bind(String id, Object obj) throws SAXException {
}

@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public Callable resolve(final String id, Class targetType) throws SAXException {

    }
}

У меня есть проблема со снятием маркеров json, как в этом случае, например, в случае, когда используется значение «startPkgService»: [1,2,3], классом targetType является java.lang.Object

Я прочитал https://github.com/javaee/jaxb-v2/issues/546 и создал обертку для обработки этого.

public class ChannelPkgServiceWrapper extends HashSet{
}

У меня много таких случаев, и я не хочу создавать много оберток, есть ли более общий способ справиться с этим?

Забудьте об используемых версиях:

  • cxf.version: 2,3,6
  • eclipselink: 2,3,0
  • jaxb-impl-2.1.13.jar (jar, содержащий Lister.class, выполняющий фактическую работу для получения правильного типа.)

-121--1706780-

iOS Обработка нескольких асинхронных запросов: отправка сигнала, когда все запросы закончены Поэтому я просматриваю переполнение стека для способов обработки asasflow Сейчас я использую ASIHTTPRequest, и мое приложение использует REST API, в котором запрос к одной...

Поэтому я просматриваю переполнение стека, чтобы найти способы эффективной обработки асинхронных запросов. Сейчас я использую ASIHTTPRequest, и мое приложение использует REST API, в котором запрос к одному ресурсу предлагает мне запросить 5 или более дополнительных ресурсов (связанных ресурсов).

Сейчас я выполняю все асинхронные запросы внутри одного огромного метода, может быть около 6 асинхронных запросов каждый с их setCompletionBlock и setFailBlock. Если вы использовали ASIHTTPRequest, вы должны иметь представление о том, сколько повторяющегося кода, который займет.

В любом случае, я, кажется, нашел решение, чтобы определить, все ли запросы завершены с этим ответом: Несколько асинхронных запросов URL

Однако я не знаю, как применить этот ответ в коде, так как я раньше не использовал push-уведомления, и я всегда использовал «я» как делегированные, а не другие классы.

Какие идеи, как я могу применить ответ к коду или лучше, вы знаете о каких-либо других методах?

Спасибо заранее!

6
задан Community 23 May 2017 в 11:52
поделиться