因此,我们发现JBoss 7.1 EAP提供了自己版本的Jackson Databind。这个版本会干扰我们的部署,因为我们在WAR中有一个新版本。我们已经通过在WAR级别的WEB-INF中包含jboss-deployment-structure.xml证明了这一理论:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="jaxrs"/>
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
这使 WAR 在以前收到错误时自行部署而不会出错。但是,当尝试在 EAR 部署级别实现相同的解决方案时,我没有成功。我尝试将 jboss-deployment-structure.xml 放在 EAR 的 META-INF、WEB-INF 和根级别。我已经对所有数量的不同配置都做到了这一点,但我无法让它正确排除 jaxrs。值得一提的是,这是我第一次运行 JBoss 配置,我可能会错过一些非常简单的东西。
EAR级别文件:
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclude-subsystems>
<subsystem name="jaxrs" />
</exclude-subsystems>
</deployment>
<sub-deployment name="myWar.war">
<exclude-subsystems>
<subsystem name="jaxrs" />
</exclude-subsystems>
</sub-deployment>
</jboss-deployment-structure>
原来这就是答案。就像它站在这里一样。另一个开发人员将相同的文件放入他的构建中,并且成功了。我不知道他的环境和我的环境有什么不同,但我认为这个问题已经解决了。