当我只获得Null指针异常时,如何调试失败的映射

时间:2015-02-11 21:31:17

标签: java automapper automapping orika

我在项目中使用Orika通常非常成功 我添加了一个新类型,注册了源和目标,当我使用mapper.mapAsList(sourceList,targetClass)映射它时,我得到以下异常

[2015-02-11 19:58:19,836][ERROR][platform.fe.baseservice.utils.validators.BasicFEValidator] validateTransformingAPIModelToDataModel
java.lang.NullPointerException: null
    at ma.glasnost.orika.generated.Orika_HTML5Single_APIHTML5Single_Mapper808888457244295$34.mapAtoB(Orika_HTML5Single_APIHTML5_Mapper808888457244295$34.java) ~[na:na]
    at ma.glasnost.orika.impl.mapping.strategy.UseCustomMapperStrategy.map(UseCustomMapperStrategy.java:65) ~[orika-core-1.4.4.jar:na]
    at ma.glasnost.orika.impl.MapperFacadeImpl.mapAsCollection(MapperFacadeImpl.java:646) ~[orika-core-1.4.4.jar:na]
    at ma.glasnost.orika.impl.MapperFacadeImpl.mapAsList(MapperFacadeImpl.java:391) ~[orika-core-1.4.4.jar:na]
    at ma.glasnost.orika.impl.MapperFacadeImpl.mapAsList(MapperFacadeImpl.java:729) ~[orika-core-1.4.4.jar:na]
    ....
    ....

只是空指针异常。

现在我一直试图调试它很长一段时间但没有成功(主要是因为大部分是生成代码)。

问题:

  1. 获得有意义的例外的最佳方式是什么。
  2. 我该如何调试?
  3. 有没有办法查看生成的类。
  4. 由于

2 个答案:

答案 0 :(得分:1)

这里有一个问题排查指南: http://orika-mapper.github.io/orika-docs/troubleshooting.html

当我遇到一些例外时我做了什么我无法弄清楚是从开始生成源代码开始(参见"生成源和/或类文件"部分,使用{ {1}}和OrikaSystemProperties#WRITE_SOURCE_FILES属性)。大多数时候,我可以弄清楚在我的情况下什么是空的。

如果我仍然有疑问,我将编译器切换到Eclipse JDT(请参阅"启用步骤调试"部分),这比以前的解决方案需要更多的努力,但为您提供完整的调试可能性。

答案 1 :(得分:0)

面临类似问题。经过4到5天的试验和错误发现,我的布尔属性名称以“ is”开头。 更正此问题后,问题得到解决。