栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 类隔离 解决依赖冲突 NoSuchMethodError

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 类隔离 解决依赖冲突 NoSuchMethodError

Java 开发过程中经常遇到NoSuchMethodError异常:

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: com.xxx.xxxMethod()
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1006)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:981)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:884)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:858)

这是由于依赖的jar包冲突导致的, 不同的模块引入了不同的版本jar包,但是最终只会有一个加载,如果刚好被加载的那个jar包中没有某个被使用的方法,就报这个错了。

类隔离技术是为了解决依赖冲突而诞生的,它通过自定义类加载器破坏双亲委派机制,然后利用类加载传导规则实现了不同模块的类隔离。

所以可以通过自定义类加载器解决依赖冲突(当然你也可以通过找到并排除冲突的 jar包):继承java.lang.ClassLoader,重写java.lang.ClassLoader#loadClass(java.lang.String),在加载类的时候使用自定义类加载器加载。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999864.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号