jsf 1.2到jsf 2.2迁移原因:javax.faces.FacesException

时间:2016-04-11 15:52:39

标签: jsf jsf-2

我正在开发一个关于从jsf1.2迁移到JSF 2.2的项目,我已经删除了jsf 1.2 jar并用jsf 2.2 jars替换它们!但是当我试图在faces-config文件中更改schema命名空间时(jsf 2.2的新命名空间定义)我得到了这个例外:

Caused by: javax.faces.FacesException: Class org.jboss.as.web.deployment.jsf.JandexAnnotationProvider is 
not an instance of com.sun.faces.spi.AnnotationProvider

1 个答案:

答案 0 :(得分:0)

这似乎是您的依赖项中的不一致。 这个例外明显指出,

org.jboss.as.web.deployment.jsf.JandexAnnotationProvider

不是

的扩展名
com.sun.faces.spi.AnnotationProvider

但是,我已经使用http://grepcode.com做了一些研究,以更好地了解这个问题。 它接缝,JandexAnnotationProvider实际 AnnotationProvider的扩展,至少在jboss-as-web version 7.0.0之后

同样有趣的是,JandexAnnotationProvider在版本7.1.2.Final

之后消失了

我建议更新到最新版本的jboss-as-web,即7.2.0 由于与您的问题相关的原因,此类可能已被替换。

您可以在以下网址获取此版本:

http://central.maven.org/maven2/org/jboss/as/jboss-as-web/7.2.0.Final/jboss-as-web-7.2.0.Final.jar

或作为Maven依赖:

<dependency>
    <groupId>org.jboss.as</groupId>
    <artifactId>jboss-as-web</artifactId>
    <version>7.2.0.Final</version>
</dependency>

致以最诚挚的问候,

J.Adam