部署javaweb应用出错

在osc代码区zbo分享的extjs与DWR结合的web在线聊天系统(http://www.oschina.net/code/snippet_135432_20523?p=1#comments),跟着部署出现的一系列问题:

问题一:

Caused by: java.lang.ClassCastException: 
	org.hibernate.annotations.common.reflection.java.JavaReflectionManager 
	cannot be cast to org.hibernate.annotations.common.reflection.MetadataProviderInjector

下面是Hibernate annotation的包 :

  1. hibernate3-3.6.0.Final.jar
  2. hibernate-annotations-3.4.0.GA.jar
  3. hibernate-commons-annotations-3.0.0.GA.jar
Hibernate annotation module is merged into Hibernate core module since v3.5  (if not mistake). In this case, Hibernate is detected two annotation modules, from both “ Hibernate core ” and “ Hibernate annotation “, causing conflict and prompt the ClassCastException .

解决方法:删除 hibernate-annotations-3.4.0.GA.jarhibernate-commons-annotations-3.0.0.GA.jar

问题二:

java.lang.NoSuchMethodError: antlr.collections.AST.getLine()

产生的原因主要是:问题出在struts包里面有也有个antlr_XXX.jar,与hibernate包里面的冲突了

解决的方法主要是:

右键项目属性,找到java build path,将hibernate包弄到最上边  即可 :

若还不不能解决问题,可以按照下面的步骤:

我用的myeclipse8.6, 装在 D:/MyEclipse8.6/,,

SSH组合完成后,执行hibernate的HQL查询时,报错: 
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I

看来是antlr这个语法解析包出错 
因为Struts自带的antlr-2.7.2.jar,比Hibernate3.3自带的antlr-2.7.6.jar的版本要低,故要删除前一个低版本的,, struts1.3 和2.1都带有antlr-2.7.2.jar ,,,下面我要把它们都清除了,,

由于myeclipse 添加的struts性能 不是放在工程lib下的,而是myeclipse自带的,,所以删除比较麻烦,,我觉得最简单的做法应该是这样:

D:/MyEclipse8.6/MyEclipse-8.6/configuration/org.eclipse.osgi/bundles 下搜索antlr-2.7.2.jar

完成后能看到的,都删除掉,,(可能有些是在1.3下面的,有些是在2.1下面的)

然后在 D:/MyEclipse8.6/Common/plugins   搜索 *struts*.jar   会发现,出来三个

错误java.lang.NoSuchMethodError: antlr.collections.AST.getLine()解决方法 - 夜星 - 夜星
选中 一个文件,,打开方式选择压缩包,,我的winRAR的,,

com.genuitec.eclipse.cross.easystruts.eclipse_8.6.0.me201007231647.jar 在lib下和data/1.3下要删除antlr-2.7.2.jar(这个是删除1.3里面的)

而再打开 com.genuitec.eclipse.struts2_8.6.0.me201007292038.jar   data/2.1/core 下删除 antlr-2.7.2.jar (这个是2.1里面的)

好了,,这个就从struts1.3和2.1中移除了,,因为这两个jar是common目录下的,所以删除了后,再运行myeclipse后, myeclipse就不能再从这两个包中找 antlr-2.7.2.jar 并加载了

问题三:
java.lang.NoClassDefFoundError: antlr/ANTLRException
 org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:35)
 org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:74)

解决方法:

原来是Hibernate3.0与2.0有所不同
增加了antlr-2.7.6.jar这个包,将这个包加上就OK了!

转载于:https://my.oschina.net/OQKuDOtsbYT2/blog/124253

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值