gpt4 book ai didi

java - Mule JAXB 对象到 XML 转换器抛出 JAXBException

转载 作者:行者123 更新时间:2023-12-02 04:53:59 24 4
gpt4 key购买 nike

我使用的是 Mule 3.6。我有一个用 JAXB 绑定(bind)注释的对象,我正在尝试将其转换为 Mule 中的 XML。每当我尝试这样做时,都会收到 javax.xml.bind.JAXBException: "com.mj.metal.object"does not contains ObjectFactory.class or jaxb.in​​dex。我的变压器定义为:

<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

关于java - Mule JAXB 对象到 XML 转换器抛出 JAXBException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28956539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com