jboss中运行jsf报错

[code="java"]java.lang.ClassCastException: com.sun.faces.application.ApplicationAssociate cannot be cast to com.sun.faces.application.ApplicationAssociate[/code]

报的错误如上所示,程式是一个简单jsf入门,我用tomcat6.0可以运行,但是用jboss4.2运行时会报这样的错误,jboss单独可以运行。
请高手予以解答,谢谢。

[b][color=blue]看看(更改到你的JBOSS目录,JBOSS的默认实现。):
E:\JavaEEServers\jboss-4.2.3.GA\server\default\deploy\jboss-web.deployer\jsf-libs

里面有

jboss-faces.jar
jsf-api.jar
jsf-impl.jar

所以和你的lib下的jsf-api.jar jsf-impl.jar 冲突了。(Tomcat不提供对JSF的默认实现的支持,所以不会冲突!)。错误就是这样诞生的。

呵呵 , 更改下jar的引用就可以了。

参考:
[/color][/b]
[url]http://www.iteye.com/topic/416866[/url]

这是两个服务器差异呀!不是你项目的问题呀!这个错误不影响你的项目呀!

这个类型转换时不匹配的异常。但看异常信息,两个类型却又是一样的。会不会是两个地方用到的包不一样或者是JDK(JVM)版本不一样啊。费解了。

[color=blue]很简单,有2个JSF的实现重复了。

Tomcat中没有提供对JSF的默认支持,因此在你的项目的lib下,自己需要放置JSF的实现包。
而在JBOSS中提供了对JSF的默认支持,所以移植的时候,JBOSS会加载到2个JSF的实现,因此就报错了。

更改的办法,删除你项目lib下的JSF的jar包。或者参考:
[/color]
[url]http://www.iteye.com/topic/416866[/url]

应该是不同类加载器加载的,所以会认为它两个不一样。