首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一个与spring-boot-devtools相关的类加载器问题

一个与spring-boot-devtools相关的类加载器问题
EN

Stack Overflow用户
提问于 2015-11-27 20:37:20
回答 2查看 6.6K关注 0票数 7

背景: Spring boot项目,添加商品和商品价目表

代码语言:javascript
运行
复制
Goods:
List<GoodsPrice> pricelist;

在控制器中,首先将goodsForm转换为商品(通过推土机),然后保存商品,保存商品后迭代商品价目表以填充goodsId。

代码语言:javascript
运行
复制
goods.getPriceList().forEach(p -> p.setGoodsId(goods.getId()));

迭代商品价目表时抛出异常:

代码语言:javascript
运行
复制
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]

有人提醒我这个异常与类加载器相关,在eclipse调试模式下,我输出了GoodsPrice的classloader:

代码语言:javascript
运行
复制
sun.misc.Launcher$AppClassLoader@14dad5dc

商品:org.springframework.boot.devtools.restart.classloader.RestartClassLoader@591c6338

确实存在不同的类加载器。然后我评论了spring-boot-devtools,然后再试了一次,这次没问题。那么如果仍然保留spring-boot-devtools,该如何解决这个问题呢?

EN

回答 2

Stack Overflow用户

发布于 2016-05-13 00:19:04

Dozer使用了错误的类加载器。

你可以在你的资源文件夹中添加这个文件来解决这个问题:

META-INF/spring-devtools.properties

在内部:

Restart.include de.dozer=/dozer-5.5.1.jar

restart.include.dozer-spring=/dozer-spring-5.5.1.jar (仅当您使用此jar时!)

资料来源:http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-devtools-customizing-classload

票数 7
EN

Stack Overflow用户

发布于 2020-06-02 20:56:05

同样的问题也被问到了here

您需要将excludeDevTools设置为false

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33957612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档