已部署的 Web 应用程序为 javax.json.JsonValue.asJsonArray - Jboss eap



我有一个Web应用程序部署到Linux上的jboss eap 7.0。

在我的java代码中,我正在使用javax.json.JsonValue.asJsonArray方法。 当我在雄猫本地运行时,一切运行正常。

一旦我部署到Jboss,我在asJsonArray方法上得到一个nosuchmethod错误。 在我的 WEB-INF\lib 文件夹中,我有必要的 json jar 与该方法javax.json-1.1.4.jar.我发现在 Jboss 中的模块下,它有自己的javax.jsonjboss-eap-7.0modulessystemlayersbaseorgglassfishjavaxjsonmainjavax.json-1.0.3.redhat-1.jar版本。

我的推测是,当我运行我的应用程序时,它首先查看的是 Jboss 模块目录中的 jar,而不是 war 文件中WEB-INFlib文件夹中的 jar。如何指示应用程序引用WEB-INFlib中的 jar 而不是 jboss 模块中的 jar?

您可以使用 jboss-deployment-structure.xml 文件排除 JBoss 提供的依赖项,该文件需要放置在战争的 WEB-INF 目录下。您必须指定如下所示的排除依赖项。

`<jboss-deployment-structure>  
<deployment>  
<exclusions>  
<module name="$LIBRARY_OR_MODULE_YOU_WANT_TO_EXCLUDE"/>  
</exclusions>  
</deployment>
</jboss-deployment-structure>`

例如<module name="javax.json.api"/>

相关内容

最新更新