我不想为我的项目引用服务器端jar,我的primefaces + spring项目必须使用我添加到lib文件夹的jar

时间:2017-09-05 05:43:23

标签: wildfly jsf-2.2 web.xml jsf-1.2

我正在开发Primefaces + Spring项目。最近我们将项目从JSF 1.2迁移到2.2版本。以前我们的项目是使用来自Project的lib文件夹的jsf Implementation和API jar,但现在它正在使用位于的文件夹,

** \ wildfly-10.0.0.Final \模块\ SYSTEM \层\基\ COM \太阳\ JSF的IMPL \主**

** \ wildfly-10.0.0.Final \模块\ SYSTEM \层\基\的javax \面\ API \主**

在wildfly 10.x上部署时,它正在抛出无法启动的服务错误, JBAS014777:无法启动的服务:服务jboss.deployment.unit。“abc.war”.POST_MODULE:服务jboss.deployment.unit中的org.jboss.msc.service.StartException。“abc.war”.POST_MODULE:失败进程阶段POST_MODULE部署“abc.war”

如何配置我的项目以使用lib jars.Which将有助于部署。

1 个答案:

答案 0 :(得分:0)

Wildfly 10会隐式添加一些依赖项。您可以找到它们的列表here

对于Web子系统,这些是:

  • javaee.api
  • com.sun.jsf-impl
  • org.hibernate.validator
  • org.jboss.as.web
  • org.jboss.logging

如果您不想要其中一个,例如com.sun.jsf-impl,则可以使用jboss-deployment-structure.xml文件排除它们,如here所述。

在您的情况下,它可能如下所示:

<jboss-deployment-structure>
  <deployment>
    <exclusions>
      <module name="com.sun.jsf-impl" />
    </exclusions>
  </deployment>
</jboss-deployment-structure>

可能你可能需要更多的排除,但原则应该是明确的。