我正在开发一个关于从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
答案 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