У меня возникла проблема при попытке демаршалировать 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 вроде этого "channelPkgService": [1,2,3], класс targetType - java.lang.Object
Я читал это https://github.com/javaee / jaxb-v2 / issues / 546 и создал оболочку для обработки этого.
public class ChannelPkgServiceWrapper extends HashSet{
}
Так как у меня много таких случаев, и я не хочу создавать много оболочек, есть ли более общий способ справиться с этим?
Забудьте об используемых версиях: