verursacht durch: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.model.annotation.AnnotationReader

8

Sie könnten denken, dass das folgende Problem sehr einfach ist, aber ich weiß nicht, was ich hier falsch gemacht habe. Ich fühle, dass ich erforderliche Abhängigkeiten hinzufügte. Habe ich nicht?

Könnte mir bitte jemand vorschlagen, was ich hier falsch mache?

%Vor%

Buch.java

%Vor%

ReadXMLFileJaxb.java

%Vor%

Meine Buch.xml

%Vor%

pom.xml

%Vor%     
Kedar Mhaswade 11.04.2016, 19:14
quelle

3 Antworten

20

Wie pro Link: Warum wurde AnnotationReader aus JAXB entfernt? Referenzimplementierung? , Sie müssen einfach unter Maven Abhängigkeiten verwenden:

%Vor%

Sie müssen den Code etwas umgestalten. Es sieht auch so aus, als hätten Sie nicht die gleichen Namenfelder der Modellklasse erstellt, es sollte wie folgt aussehen: Person.java

%Vor%

Buch.java

%Vor%

ReadXMLFileJaxb.java

%Vor%

Die folgende Ausgabe sehe ich:

%Vor%     
user4821194 11.04.2016, 19:52
quelle
5

Obwohl das Thema sehr alt ist, aber immer noch beantwortet. Die Ursache ist, dass com.sun.xml.bind jetzt veraltet ist. org.glassfish.jaxb ist die neueste Referenzimplementierung der JAXB-API. Unter Verwendung von JAXB RI maven Abhängigkeit würde das Problem lösen.

%Vor%     
nirmalsingh 28.09.2016 17:17
quelle
0

Sie scheinen es in der IDE laufen zu lassen. Aus einigen seltsamen Gründen, obwohl die JAXB-Klassen in JRE's rt.jar enthalten sind,

%Vor%

Sie sind zur Laufzeit nicht für Ihre App verfügbar.

Allerdings, wenn ich die App so laufe:

%Vor%

d. von der Kommandozeile mit der Standard-Maven-Struktur scheint es zu laufen.

Ihre book.xml ist etwas falsch, glaube ich. Es enthält ein eingebettetes person -Element, während das Book.java nicht. Vielleicht möchten Sie das beheben.

    
Kedar Mhaswade 11.04.2016 19:50
quelle

Tags und Links