2011-01-18 7 views
2

J'utilise @XmlAccessorType(XmlAccessType.NONE) dans package-info.java pour my.package ce qui signifie que JAXB ne devrait se soucier que des éléments annotés. Cependant, quand je lance mon test JUnit avec le code un/de triage pour de simples POJO Moxy cris à peu près toutes les classes (même de l'emballage sans jaxb.properties ou d'autres modules de Maven qui sont référencés dans les dépendances) de cette manière:Le fournisseur JAXB Eclipselink MOXy ignore @XmlAccessorType (XmlAccessType.NONE)

Exception Description: The class other.maven.module.package.class requires a zero argument constructor or a specified factory method. Note that non-static inner classes do not have zero argument constructors and are not supported. 

Je n'ai pas rencontré un tel problème avec Metro (implémentation de référence, mais il a d'autres défauts pour mon utilisation) et malheureusement je ne peux vraiment pas modifier toutes les classes de cette façon.

Répondre

2

J'ai été en mesure de vérifier ce problème, le bogue suivant a été entré pour suivre ce problème.

Résumé de l'émission:

Pour le modèle d'objet suivant:

import javax.xml.bind.annotation.XmlAccessType; 
import javax.xml.bind.annotation.XmlAccessorType; 

@XmlAccessorType(XmlAccessType.NONE) 
public class Foo { 

    private Bar bar; 

    public Bar getBar() { 
     return bar; 
    } 

    public void setBar(Bar bar) { 
     this.bar = bar; 
    } 

} 

et:

public class Bar { 

    public Bar(String name) { 
    } 

} 

L'implémentation EclipseLink MOXy JAXB traite la classe Bar bien qu'elle ne le soit pas, car elle n'est pas mappée.

+0

Merci pour la réponse, j'espérais que ce n'est pas un bug, juste mon erreur car j'en ai besoin :) –

+0

Nous aurons bientôt un correctif. Quelle version d'EclipseLink utilisez-vous? –

+0

2.1.2; Je suppose que 2.3.0-SNAPSHOT pourrait faire la magie bientôt? :) –

Questions connexes