As a work around, remove the abstract key word and try for the generic classes.
list of java classes to be recognized by the new JAXBContext.
This is what documentation says for classesToBeBound parameters, which says it should be able to create a new object to recognize the parameters. In case of abstract class, it is not possible.
Try with a combination of @MappedSuperclass
and @XmlSeeAlso
. Annotate the base classes with those and make them abstract.