2017-09-19 5 views
0

Ich habe Probleme mit der Syntaxanalyse von Apache Camel. Ich habe alle notwendigen Annotationen hinzugefügt, als nächstes habe ich Probleme mit mehreren Wurzelelementen, dann habe ich eine neue Klasse mit List erstellt. Jetzt zeige ich meinen Code unten:XML mit Apache Camel analysieren (null drucken)

Kunden

@XmlRootElement 
@XmlAccessorType(XmlAccessType.FIELD) 
public @Data class Customer { 

private int id; 
private String name; 
private String address; 
private String countryCode; 

@XmlElementWrapper(name="products") 
@XmlElement(name="product") 
private List<Product> products; 
} 

Produkt

@XmlRootElement 
@XmlAccessorType(XmlAccessType.FIELD) 
public @Data class Product { 

    private int productId; 
    private String productName; 
} 

Kunden (Klasse, weil mehrere Stamm Problem erstellt)

@XmlRootElement 
@XmlAccessorType(XmlAccessType.FIELD) 
public @Data class Customers { 

@XmlElementWrapper 
@XmlElement(name = "customer") 
private List<Customer> customers; 

@Override 
public String toString() { 
    return "Customers{" + 
      "customers=" + customers + 
      '}'; 
    } 
} 

MyRouteBuilder

public class MyRouteBuilder extends RouteBuilder { 
    @Override 
    public void configure() throws Exception { 
     from("file:/home/tkaczmarek/usr/data/inbox?noop=true") 
       .bean(XmlToBean.class); 
    } 
} 

XmlToBean

public class XmlToBean { 
    public void transformXmlObject(Customers customers) { 
     System.out.println(customers); 
    } 
} 

XML-Datei

<?xml version="1.0" encoding="UTF-8"?> 
<customers> 
<customer> 
    <id>1</id> 
    <name>Tomasz Kaczmarek</name> 
    <address>Łódź, ul. Błotna 5/32</address> 
    <countryCode>1221</countryCode> 
    <products> 
     <product> 
     <productId>1</productId> 
     <productName>Bread</productName> 
     </product> 
     <product> 
     <productId>2</productId> 
     <productName>Meat</productName> 
     </product> 
    </products> 
</customer> 
</customers> 

Aktuelle Ausgabe

Customers{customers=null} 

Wie kann ich meinen Code richtig funktionieren lassen? Ich habe keine Ahnung, wo ein Problem ist.

+0

Haben Sie Kamel-Jaxb auf dem Klassenpfad? Und welche Version von Camel benutzt du? Und können Sie besser erklären, was das Problem ist, ist es ein wenig unklar –

+0

Was meinst du mit mehreren Root-Problem? –

Antwort

0

Problem ist gelöst, ich habe XmlWrapper von Kunden und Kunden gelöscht und jetzt funktioniert es richtig.