Ich habe ein XML, das einem Java-Objekt, d. H. Einem DTO, zugeordnet werden muss. Meine XML einige Wrapper-Elemente hat, die keine Java-Objekte in meiner DTO hat .. meine XML sieht ungefähr so XML kann nicht mithilfe von Jaxb und XMLPath entpackt werden
<UseCaseView>
<FindCandidates>
<CandidatesRequest>
<APIRequest>
<Code>Code</Code>
</APIRequest>
</CandidatesRequest>
</FindCandidates> </UseCaseView>
Das „FindCandidates“ und „CandidatesRequest“ sind nur Wrapper-Elemente und „APIRequest“ wieder ein DTO ..
ich so bin mit xmlpath in meinem DTO .. Meine Dto wie folgt aussieht ..
@XmlRootElement(name = "UseCaseView")
public class FindRequestDTO implements Serializable{
private static final long serialVersionUID = 5528726225975606325L;
private ApiRequestDTO apiRequest;
@XmlPath("FindCandidates/CandidatesRequest/APIRequest")
public ApiRequestDTO getAPIRequest() {
return apiRequest;
.........
Dies ist das APIRequest Element meiner ApiRequestDTO nicht abbildet, wenn ich die beiden Wrapper entfernen Elemente und Karte direkt mit XMLElement (name = „APIRequest“) es funktioniert ... Aber ich brauche die beiden Wrapper Elemente zu ignorieren und meine DTO zu konstruieren .. Ich habe die Jaxb.properties mit
"javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory"
in meine Ressourcen-Ordner-Datei hinzugefügt.
kann mir jemand helfen, zu wissen, was falsch hier gehen ..
Dank,
Wenn Sie die 'JAXBContext' schaffen, was die Implementierungsklasse ist, die zurückgegeben wird? Das folgende Beispiel könnte helfen: https: //github.com/bdoughan/blog20110908. Wenn nicht, werde ich morgen eine Antwort schreiben. –
@Blaise - thx für schnelle Antwort .. die zurückgegebene Implementierungsklasse ist com.sun.xml.bind.v2.runtime.JAXBContextImpl – sampath
Haben Sie die eclipselink.jar auf Ihrem Klassenpfad? Das Beispiel, mit dem ich in meinem vorherigen Kommentar verlinkt habe, ist eingerichtet, um mit Maven zu kompilieren und zu laufen. –