2015-11-27 5 views
1

фона: Spring Загрузочный проект, добавить товары и товары Прайс-листзагрузчики классов proplem, связанные с весенними-загрузочными-Devtools

Goods: 
List<GoodsPrice> pricelist; 

контроллер сначала преобразовать goodsForm к товарам (по бульдозером), а затем сохранить товар, после того, как сохранение товаров итерировать список цен на товары для заполнения товаров.

goods.getPriceList().forEach(p -> p.setGoodsId(goods.getId())); 

Когда итерация товары прайс-лист, бросить исключение:

java.lang.ClassCastException: com.foo.goods.model.GoodsPrice cannot be cast to com.foo.goods.model.GoodsPrice 
at com.foo.goods.service.GoodsService$$Lambda$11/310447431.accept(Unknown Source) ~[na:na] 
at java.util.ArrayList.forEach(ArrayList.java:1249) ~[na:1.8.0_51] 
at com.foo.goods.service.GoodsService.saveGoods(GoodsService.java:34) ~[classes/:na] 

Кто-то напомнит мне это исключение, связанные с загрузчиком классов, так и в режиме отладки затмения, я outputed ClassLoader в GoodsPrice в:

[email protected] 

и товары: org.sprin[email protected]591c6338

Действительно существует разностный загрузчик классов. Затем я прокомментировал spring-boot-devtools и попробовал еще раз на этот раз, все в порядке. Так что, если все еще сохранить spring-boot-devtools, как решить эту проблему?

ответ

3

Dozer использует загрузку не того класса.
Вы можете решить, что добавление этого файла в папке ресурсов:
META-INF/spring-devtools.properties
с внутренней стороны:
restart.include.dozer =/бульдозер-5.5.1.jar
restart.include.dozer-spring =/dozer-spring-5.5.1.jar (только если вы используете эту банку!)
источники: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-devtools-customizing-classload