org.dozer.MappingException:找不到字段的读取或写入方法

时间:2014-01-06 14:44:34

标签: java xml mapping pojo dozer

我有一个源pojo类,它引用另一个pojo类,它在链中,我得到上面的错误。

我的代码是

List myMappingFiles = new ArrayList();
             myMappingFiles.add("dozerMapping.xml");
            // myMappingFiles.add("someOtherDozerBeanMappings.xml");
             DozerBeanMapper mapper = new DozerBeanMapper();
             mapper.setMappingFiles(myMappingFiles);
             mapper.map(gsrlObject,temp, "a");

我的dozermapping.xml文件是

<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns="http://dozer.sourceforge.net"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://dozer.sourceforge.net http://dozer.sourceforge.net/schema/beanmapping.xsd">
<mapping map-id="a"> 
    <class-a>com.dnb.dsc.ihx.bom.GSRL</class-a>
    <class-b>com.ihx.model.Subj</class-b>   
    <field>
    <a>gsrlObject.GSRLMSGSRQV1a.SUBJUPDTRNRQList[0].SUBJUPDRQList[0].INVTDATAList[0].PAYLHDR.SUBJID</a>
    <b>subjId</b>
    </field> 
  </mapping>  
  </mappings>

关于此的任何帮助

感谢

2 个答案:

答案 0 :(得分:1)

这意味着 dozerMapping.xml 属性不匹配或实体类中不存在该属性。

答案 1 :(得分:0)

因此,Dozer无法将您的源路径映射到方法:

gsrlObject.GSRLMSGSRQV1a.SUBJUPDTRNRQList[0].SUBJUPDRQList[0].INVTDATAList[0].P‌​AYLHDR.SUBJID

如果没有看到所有对象的完整结构,很难说哪个部分会导致问题,但是在猜测时,我会说:gsrlObject是GSRL类的一个实例,在这种情况下采取这个一个,它可能会工作。尝试一次添加1个源路径的每个部分,以查看映射的哪个部分导致问题。