将基于 JSF 1.2 的 Web 应用程序部署到 JBoss EAP 7.0
Posted
技术标签:
【中文标题】将基于 JSF 1.2 的 Web 应用程序部署到 JBoss EAP 7.0【英文标题】:Deploying JSF 1.2 based web application to JBoss EAP 7.0 【发布时间】:2018-01-01 14:41:05 【问题描述】:我有一个基于 JSF 1.2 的 Web 应用程序。 JSF jar 打包在 WAR 库中。我们尝试在 JBoss EAP 7.0 中部署战争,战争成功部署但应用程序没有运行。
我发现 JBoss EAP 7.0 不支持 JSF 1.2 。我的 Web 应用程序不是 JSF 2.0 投诉。如果有人可以列出这样做的步骤,那将是非常有帮助的。
谢谢
【问题讨论】:
你有 JSF 1.2 的模块吗? 不,我没有 JSF 1.2 的模块。我在哪里得到它。提前致谢。 【参考方案1】:请尝试以下步骤:
将 deployment-structure.xml 添加到您的项目(WEB-INF/jboss-deployment-structure.xml 到 WAR 或 META-INF/jboss-deployment-structure.xml 到 EAR),并排除:
<exclusions>
<module name="javax.faces.api" slot="main" />
<module name="com.sun.jsf-impl" slot="main" />
<module name="org.jboss.as.jsf-injection" slot="main" />
</exclusions>
导入 pom.xml 中的所有依赖,jsf 需要的。像这样:
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>1.2-b19</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>1.2-b19</version>
</dependency>
<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
<version>1.1.11</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.0</version>
</dependency>
【讨论】:
【参考方案2】:实际上,这种组合在 EAP 7 版本的 JBOSS 7.1.5 服务器上对我有用。 这样我就能够从我的 WEB-INF/lib 文件夹中加载 jsf1.2 jar,而不是 JBOSS 7.1.5 提供的。 我有一个包含 WAR 文件的 EAR 文件。
Web.xml:
<context-param>
<param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
<param-value>true</param-value>
</context-param>
入耳META-INF/jboss-deployment-structure.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<ear-subdeployments-isolated>true</ear-subdeployments-isolated>
<deployment>
<exclusions>
<module name="javax.faces.api" slot="main" />
<module name="com.sun.jsf-impl" slot="main" />
</exclusions>
</deployment>
<sub-deployment name="yourwarfilename.war">
<exclusions>
<module name="javax.faces.api" slot="main" />
<module name="com.sun.jsf-impl" slot="main" />
</exclusions>
</sub-deployment>
</jboss-deployment-structure>
【讨论】:
以上是关于将基于 JSF 1.2 的 Web 应用程序部署到 JBoss EAP 7.0的主要内容,如果未能解决你的问题,请参考以下文章
JSF 2.3 基于表单的登录和 ViewExpiredException
JSF 1.2 和 JSF 2.x 之间的 JSTL xmlns 命名空间差异?
将基于 Maven 的 JSF 项目部署到 Tomcat 会导致 java.lang.ClassNotFoundException:javax.faces.webapp.FacesServlet [重