在JBoss中部署JSF应用时报错"Could not find backup for factory javax.faces.application.ApplicationFactory" 解决方法

这个错误出现的原因是classpath中存在多个jsf实现。

比如,JBoss7有一个默认的JSF实现,而你的应用中却用了MyFaces作为JSF实现,这时候应用部署时就会报这个错误。


解决方法:

1。坚持使用项目中的JSF实现。这时在WEB-INF/web.xml中添加这个参数即可:

<context-param>
   <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
   <param-value>true</param-value>
</context-param>

这会告诉JBoss7忽略自己默认的JSF实现而使用项目中的JSF实现。这个方法只适用于JBoss-as.7.0.1以后的版本。

如果你用的是7.0.0的版本,请马上升级到7.0.1或更新的版本,因为7.0版中有BUG导致上面的参数无效。

2。如果是JBoss7之前的版本,那么删除 lib/ 下 jsf-*.jar 即可。这样JBoss就只能用应用里的JSF实现了。

你可能感兴趣的:(在JBoss中部署JSF应用时报错"Could not find backup for factory javax.faces.application.ApplicationFactory" 解决方法)