Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mule JAXB对象到XML转换器抛出JAXBEException_Java_Xml_Jaxb_Mule - Fatal编程技术网

Java Mule JAXB对象到XML转换器抛出JAXBEException

Java Mule JAXB对象到XML转换器抛出JAXBEException,java,xml,jaxb,mule,Java,Xml,Jaxb,Mule,我正在使用Mule 3.6。我有一个用JAXB绑定注释的对象,我正试图在Mule中将其转换为XML。每当我尝试这样做时,就会得到一个javax.xml.bind.JAXBException:“com.mj.metal.object”不包含ObjectFactory.class或jaxb.index。我的变压器定义为: <mulexml:jaxb-context name="JAXB_Context" packageNames="com.mj.metal.object"/> <m

我正在使用Mule 3.6。我有一个用JAXB绑定注释的对象,我正试图在Mule中将其转换为XML。每当我尝试这样做时,就会得到一个
javax.xml.bind.JAXBException:“com.mj.metal.object”不包含ObjectFactory.class或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 + "]";
    }
}
@XmlRootElement(name=“REPORT”)
@XmlAccessorType(XmlAccessType.FIELD)
公开课报告{
@xmlement(name=“HEADER”)
私有报头;
@xmlementwrapper(name=“ITEMS”)
@xmlement(name=“ITEM”)
私人清单项目;
公开报告({
超级();
页眉=新页眉();
items=newarraylist();
}
公共头getHeader(){
返回头;
}
公共列表getItems(){
退货项目;
}
公共无效集合标头(标头){
this.header=头;
}
公共无效集合项(列表项){
这个项目=项目;
}
@凌驾
公共字符串toString(){
返回“\n报告[header=“+header+”\nitems=“+items+”]”;
}
}

如何修复此问题?

您需要将jaxb.index文件添加到类路径中,以便jaxb能够知道应该将XML数据结构映射到哪些类

index文件只是包含包中具有jaxb注释的类的列表。只需输入他们简单的名字(不需要完全分类的名字就足够了)

这些链接可能会帮助您: