簡體   English   中英

將Mule JAXB對象轉換為XML Transformer並拋出JAXBException

[英]Mule JAXB Object to XML Transformer throwing JAXBException

我正在使用Mule 3.6。 我有一個用JAXB綁定注釋的對象,我正在嘗試將其轉換為Mule中的XML。 每當我嘗試這樣做時,都會得到javax.xml.bind.JAXBException: "com.mj.metal.object" doesn't contain ObjectFactory.class or jaxb.index 我的變壓器定義為:

<mulexml:jaxb-context name="JAXB_Context" packageNames="com.mj.metal.object"/>
<mulexml:jaxb-object-to-xml-transformer mimeType="application/xml" jaxbContext-ref="JAXB_Context" doc:name="JAXB Object to XML"/>

該軟件包包含要進行轉換的我的類。 其中之一是:

@XmlRootElement(name = "REPORT")
@XmlAccessorType(XmlAccessType.FIELD)
public class Report {

    @XmlElement(name = "HEADER")
    private Header header;
    @XmlElementWrapper(name = "ITEMS")
    @XmlElement(name = "ITEM")
    private List<Item> items;

    public Report() {
        super();
        header = new Header();
        items = new ArrayList<Item>();
    }

    public Header getHeader() {
        return header;
    }

    public List<Item> getItems() {
        return items;
    }

    public void setHeader(Header header) {
        this.header = header;
    }

    public void setItems(List<Item> items) {
        this.items = items;
    }

    @Override
    public String toString() {
        return "\nReport [header=" + header + "\nitems=" + items + "]";
    }
}

我該如何解決?

您需要將jaxb.in​​dex文件添加到類路徑,以便JAXB能夠知道應將XML數據結構映射到哪些類。

jaxb.in​​dex文件不過是包含包中具有JAXB批注的類的列表。 只需輸入其簡單名稱(僅使用其完全分類的名稱是不夠的)。

這些鏈接可以幫助您:

http://docs.oracle.com/javase/tutorial/jaxb/intro/customize.html

http://cmaki.blogspot.com/2007/09/annotated-jaxb-classes.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM