启动本地JBoss遇Jackson XmlMapper.coercionConfigDefaults()方法不存在错误求助
解决JBoss启动时Jackson的NoSuchMethodError问题
启动本地JBoss时出现如下异常:
Caused by: java.lang.NoSuchMethodError: 'com.fasterxml.jackson.databind.cfg.MutableCoercionConfig com.fasterxml.jackson.dataformat.xml.XmlMapper.coercionConfigDefaults()'
核心原因
JBoss自带了一套Jackson库,哪怕你项目里用了最新版本且依赖树显示版本一致,JBoss的模块类加载机制会优先加载它自带的旧版本Jackson,而这个旧版本里没有coercionConfigDefaults()方法,所以抛出错误。
解决方案
排除JBoss自带的Jackson模块
在项目中创建或修改jboss-deployment-structure.xml(放在WEB-INF或META-INF目录下),添加以下配置,强制JBoss使用你项目依赖的Jackson版本:<jboss-deployment-structure> <deployment> <exclusions> <module name="com.fasterxml.jackson.core.jackson-core" /> <module name="com.fasterxml.jackson.core.jackson-databind" /> <module name="com.fasterxml.jackson.core.jackson-annotations" /> <module name="com.fasterxml.jackson.dataformat.jackson-dataformat-xml" /> </exclusions> </deployment> </jboss-deployment-structure>核对项目依赖版本
手动检查pom.xml(或Gradle配置文件),确保jackson-core、jackson-databind、jackson-annotations、jackson-dataformat-xml这几个依赖的版本完全统一,避免隐式依赖引入不一致的版本。清理JBoss缓存
删除JBoss安装目录下standalone/data和standalone/tmp里的所有文件,然后重启JBoss,避免旧类缓存干扰加载。
内容的提问来源于stack exchange,提问作者olzen
相关产品推荐
相关产品推荐

