springboot中引入了Dozer映射,在映射時拋出異常
java.lang.NullPointerException
at org.dozer.classmap.ClassMap.getSrcClassToMap(ClassMap.java:191)
at org.dozer.loader.MappingsParser.processMappings(MappingsParser.java:80)
at org.dozer.loader.CustomMappingsLoader.load(CustomMappingsLoader.java:49)
at org.dozer.DozerBeanMapper.loadCustomMappings(DozerBeanMapper.java:213)
at org.dozer.DozerBeanMapper.initMappings(DozerBeanMapper.java:315)
at org.dozer.DozerBeanMapper.getMappingProcessor(DozerBeanMapper.java:192)
at org.dozer.DozerBeanMapper.map(DozerBeanMapper.java:120)
at com.zx.wdrs.dozer.DozerBeanMapperTest.testMapper(DozerBeanMapperTest.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
背景:
包檢查 check
打印引用的mapper 有內存地址不為空 check
@Configuration配置檢查 check
配置文件位置正確 check
且打印出了加載log,說明配置已正確引入。
寫Test類,剝離其他相關,簡單映射下兩個類,new出來的mapper可以映射,但是通過app注解綁定的還是繼續拋空指針
排查堆棧信息,跟源碼
getMappingProcessor
initMappings
有可能在加載個性配置時有問題。
確定注釋掉了內容,但是沒有注釋掉mapping標簽,即標簽內的內容為空,導致報錯,注掉mapping后正常。