`

org.hibernate.hql.ast.HqlToken

阅读更多
org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from com.dhcc.mm5.QbMm5List]
        at org.hibernate.hql.ast.HqlLexer.panic(HqlLexer.java:57)
        at antlr.CharScanner.setTokenObjectClass(CharScanner.java:340)
        at org.hibernate.hql.ast.HqlLexer.setTokenObjectClass(HqlLexer.java:31)
        at antlr.CharScanner.<init>(CharScanner.java:51)
        at antlr.CharScanner.<init>(CharScanner.java:60)
        at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:56)
        at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:53)
        at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:50)
        at org.hibernate.hql.ast.HqlLexer.<init>(HqlLexer.java:26)
        at org.hibernate.hql.ast.HqlParser.getInstance(HqlParser.java:44)
        at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:232)
        at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:155)
        at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
        at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
        at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
        at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
        at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
        at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
        at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
        at com.dhcc.mm5.QbMm5ListDAO.findAll(QbMm5ListDAO.java:141)
        at jsp_servlet.__left._jspService(__left.java:114)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
        at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:391)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:309)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3370)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(Unknown Source)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2117)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2023)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)

解决方法:
在hibernate.properties文件中增加属性:hibernate.query.factory_class,属性的值是org.hibernate.hql.classic.ClassicQueryTranslatorFactory. 如果用的是cfg.xml文件, 就在hibernate.cfg.xml中的<session-factory>下面添加一条声明: <property name="query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>, 问题解决,但是如果程序中没用HQL语句,则不能删除,所以要改startWebLogic.cmd,修改startWebLogic.cmd,将set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%\jre\lib\rt.jar;%WL_HOME%\server\lib\webservices.jar;%CLASSPATH%
改为set CLASSPATH=%D:\wwwportalRun\WEB-INF\lib\antlr-2.7.5H3.jar;%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%\jre\lib\rt.jar;%WL_HOME%\server\lib\webservices.jar;%CLASSPATH%
即可。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics