Was könnte "JAXBElement nicht über eine no-arg default-Konstruktor"?

Ich bin die Erzeugung einer jar-Datei, die gelöscht werden muss, in einem kommerziellen software-Produkt. Das Glas entspricht der kommerziellen software-api und richtet sich auf ein zweites Glas, die enthält (unter anderem) eine Reihe von POJOs generiert aus einer XSD. Doch, es schlägt fehl, wenn Sie versuchen zu instanziieren JAXBContext wenn ich drop ein.

Bekomme ich:

"1 counts of IllegalAnnotationExceptions"
javax.xml.bind.JAXBElement does not have a no-arg default constructor.
  this problem is related to the following location: 
    at javax.xml.bind.JAXBElement
    at mypackage.MyClass
    ...
    JAXBContext.newInstance("mypackage"); 
    ...

Mein XSD (zusammengefasst aus Platzgründen) sieht wie folgt aus:

<xsd:schema ... >
  <xsd:element name="MyClass" type="myType" />
  <xsd:complexType name="myType">
  ...
  </xsd:complextType>

</xsd:schema>

Dachte ich vielleicht, dass das Problem war, dass der Unterricht an der "xsd:element" - Ebene nicht vorhanden, aber das problem bleibt bestehen, auch wenn ich den XJC-up zu erstellen, MyClass und ich habe festgestellt, dass MyClass hat eine public no-arg-Konstruktor.

So, ich habe einige andere Fragen (und alle über das internet, in der Tat). Keiner von Ihnen gab mir genug Verständnis um dieses problem zu lösen, das kann nur eine schlechte Reflexion auf mich. Kann jemand ein paar Einblicke? Oder geben Sie mir alternative tests durchzuführen, um diese brechen?

  • Leider ist die wahre Quelle code ist gesperrt, bis auf meine Unternehmens-intranet. Das ist der Grund, warum ich drop eine vollständige Erholung hier.
  • Ist dies, wie Sie anlegen JAXBContext JAXBContext.newInstance("mypackage");? Versuchen Sie es mit einem generierten ObjectFactory-Klasse. Ich hatte eine Reihe von zufälligen Ausnahmen, wenn Sie versuchen, verwenden Sie den Paket-Methode. Auch ist es eine refactoring-Albtraum, es sei denn, Sie leiten package-Namen auf die Laufzeit.
  • Sind Sie in einer OSGi-Umgebung?
  • Ich habe versucht, beide Methoden an dieser Stelle, Verhalten Sie sich in der gleichen Weise.
  • Es scheint zu sein, gebaut aus der Finsternis in einigen Form oder form, und Eclipse ist definitiv basierend auf OSGi.
  • In Ihrem manifest stellen Sie sicher, dass der import der javax.xml.bind und javax.xml.bind.annotation Pakete.
  • Ich glaube, ich mispoke. Ich habe nicht ein Manifest zu Bearbeiten. Ich bin einfach mal ein Glas in ./ext/libs und es sollte ihn abholen.
  • Ich erlebte diese Fehler beim ausführen eines JUnit Tests über Eclipse, aber nicht bekommen, um die Fehler beim ausführen die gleichen Untersuchung mittels Maven. Wie mit deinem Problem, ich denke, dies ist aufgrund der zum laden von Klassen Unterschiede zwischen Maven und Eclipse.

Schreibe einen Kommentar