出现这种问题的一般原因为缺少antlr jar包或者是jar版本有冲突。
但web工程的web-inf\lib下有该jar包,于是将该jar包复制一份放到glassfish的server\lib下,重启工程,成功,在浏览器中也能正常显示登录页面,但通过输入用户名和密码登录时,又提示org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken 错误,感觉glassfish没有正常加载web-inf\lib下的jar包。
ps:该现象也出现在weblogic中,但通过在工程web-inf下添加weblogic.xml配置文件,将prefer-web-inf-classes的值设为true,也能解决问题,但glassfish中貌似没有这种配置
请问哪位高手可以解答一下,谢谢。
2 个解决方案
#1
weblogic出现这种错误的原因是:服务器默认的lib下包含了antlr包里的类,但是weblogic里面的版本比较低,所以加个配置文件让它优先加载webapp下的lib
glassfish解决方法应该也很简单,你去把服务器里面的和antlr冲突的那个Jar包删了就是,weblogic也可以用这种方法解决。
glassfish解决方法应该也很简单,你去把服务器里面的和antlr冲突的那个Jar包删了就是,weblogic也可以用这种方法解决。
#2
但glassfish中没有antlr相关的jar包
#1
weblogic出现这种错误的原因是:服务器默认的lib下包含了antlr包里的类,但是weblogic里面的版本比较低,所以加个配置文件让它优先加载webapp下的lib
glassfish解决方法应该也很简单,你去把服务器里面的和antlr冲突的那个Jar包删了就是,weblogic也可以用这种方法解决。
glassfish解决方法应该也很简单,你去把服务器里面的和antlr冲突的那个Jar包删了就是,weblogic也可以用这种方法解决。
#2
但glassfish中没有antlr相关的jar包