【问题标题】:Mule JAXB Object to XML Transformer throwing JAXBExceptionMule JAXB 对象到 XML 转换器抛出 JAXBException
【发布时间】:2015-03-10 17:20:38
【问题描述】:

我正在使用 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 + "]";
    }
}

我该如何解决这个问题?

【问题讨论】:

    标签: java xml jaxb mule


    【解决方案1】:

    您需要将一个 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

    【讨论】:

      猜你喜欢
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多