在本地使用Tomcat测试,一切正常,当发到sit环境上使用了jboss,运行时报 java.lang.NoSuchMethodError:ObjectMapper.setFilterProvider异常
通过 getClass().getProtectionDomain() 发现使用了jboss下的/opt/wildfly/modules/system/layers/base/com/fasterxml/jackson/core/jackson-databind/main/jackson-databind-2.3.2.jar
然后在jboss-deployment-structure.xml的中增加了
<module name="com.fasterxml.jackson.core.jackson-databind"/>
<module name="com.fasterxml.jackson.core.jackson-annotations"/>
<module name="com.fasterxml.jackson.core.jackson-core"/>
还是存在问题
- 最后查了所有modules下的module.xml文件,发现还有两个module依赖了jackson的包,将它们也排除了,最后成功了
完整的:
<jboss-deployment-structure>
<deployment>
<!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
<exclusions>
<module name="org.slf4j" />
<module name="org.slf4j.impl" />
<module name="org.jboss.resteasy.resteasy-jackson2-provider"/>
<module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider"/>
<module name="com.fasterxml.jackson.core.jackson-databind"/>
<module name="com.fasterxml.jackson.core.jackson-annotations"/>
<module name="com.fasterxml.jackson.core.jackson-core"/>
</exclusions>
</deployment>
</jboss-deployment-structure>