2017-09-19 20 views
0

Apache CamelでXMLを解析する際に問題があります。私はすべての必要な注釈を追加し、次に複数のルート要素にいくつかの問題があり、Listを使って新しいクラスを作成しました。Apache CamelでXMLを解析しています(nullの場合)

カスタマー

@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; 
} 

製品(複数のルート問題ので、作成したクラス)

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

    private int productId; 
    private String productName; 
} 

お客様

@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ファイル

<?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> 

現在出力

Customers{customers=null} 

コードを正しく動作させるにはどうすればよいですか?どこに問題があるのか​​分かりません。

+0

クラスパスにcamel-jaxbがありますか?あなたはどんなバージョンのCamelを使っていますか?そして、あなたは何が問題であるかをよく説明できますか?少し不明です –

+0

複数の根本的な問題は何を意味しますか? –

答えて

0

問題が解決しました.XmlWrapperをCustomersおよびCustomerから削除したところ、正しく動作しています。

関連する問題