lovezyj
2010-01-18 21:56
浏览 230
已采纳

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单独可以运行。
请高手予以解答,谢谢。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 拽拽的初行者 2010-01-18 23:01
    已采纳

    [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]

    点赞 打赏 评论
  • hongmiao88 2010-01-18 22:01

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

    点赞 打赏 评论
  • 成尚謙 2010-01-18 22:19

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

    点赞 打赏 评论
  • 拽拽的初行者 2010-01-18 22:56

    [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]

    点赞 打赏 评论
  • wocsok 2010-01-18 23:02

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

    点赞 打赏 评论

相关推荐 更多相似问题