Java Web Services / JAXB - Superclasse abstraite
J'ai un forfait avec JAXB classes annotées avec un abrégé de la superclasse. Je veux profiter de cette super-classe dans l'interface de service web, j'ai donc
pouvez passer tout de sous-classes en tant que paramètre. Quand je le fais, une exception est levée:
javax.xml.ws.WebServiceException: javax.xml.bind.UnmarshalException
- with linked exception:
[javax.xml.bind.UnmarshalException: Unable to create an instance of xxx.yyy.ZZZ
- with linked exception:
[java.lang.InstantiationException]]
Il est possible de manuellement marshall/unmarshall & passer comme paramètre une chaîne de caractères, mais je voudrais l'éviter. Des idées comment faire?
source d'informationauteur alex.zherdev
Vous devez vous connecter pour publier un commentaire.
Avez-vous spécifié la mise en œuvre concrète dans votre demande de service web? Cela fonctionne bien pour moi:
Classe de base abstraite:
Mise en œuvre de la classe:
Méthode de service Web:
Demande:
J'étais résoudre le même problème aujourd'hui.
J'ai trouvé EclipseLink MOXy JAXB la mise en œuvre de travail, mais il n'y a pas de pot ou de maven module disponible (c'est seulement comme ensemble de eclipselink.jar, ce qui est énorme)
Enfin, j'ai essayé la dernière JAXB version (2.2.2), et étonnamment, il a bien fonctionné.
maven config:
J'ai eu un Problème similaire, dont les commentaires ci-dessus n'a pas résolu. Le Blogsposts liés à partir de InstantiationException au cours de JAXB Unmarshalling (classe de base abstraite, avec @XmlSeeAlso béton sous-classe) ont été très utiles pour moi de comprendre ce que j'étais vraiment en train de faire.