当前位置: 首页 > 面试题库 >

ClassNotFoundException:org.hibernate.hql.ast.HqlToken每当我尝试执行HQL时

储仲渊
2023-03-14
问题内容

当我尝试在代码中执行HQL时,发生以下异常。我在各个站点中进行了检查,发现antlr.2.7.6.jar
shd位于类路径中。我在项目中检查了此内容,发现在我的Maven依赖项中存在该内容。因此,不应有任何此类问题。但是我仍然遇到这个问题。谁能在这方面帮助我。我在“
empList = getHibernateTemplate()。find(“来自Employee”);“行中收到此错误。在以下功能中。

public List<EmployeeTO> getAllEmp() {
    List<Employee> empList =  new ArrayList<Employee>();
List<EmployeeTO> empListTO =  new ArrayList<EmployeeTO>();
empList = getHibernateTemplate().find("from Employee");
try {
    BeanUtils.copyProperties(empListTO, empList);
} catch (IllegalAccessException e) {
    e.printStackTrace();
} catch (InvocationTargetException e) {
    e.printStackTrace();
}
    return empListTO;
}

异常stacktrace:

Root cause of ServletException.
     org.springframework.orm.hibernate3.HibernateQueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from com.myapp.domain.Employee]; nested exception is org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from com.myapp.domain.Employee]
    at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:656)
    at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
    at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
    at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912)
    Truncated. see log file for complete stacktrace
Caused By: org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from com.myapp.domain.Employee]
    at org.hibernate.hql.ast.HqlLexer.panic(HqlLexer.java:80)
    at antlr.CharScanner.setTokenObjectClass(CharScanner.java:340)
    at org.hibernate.hql.ast.HqlLexer.setTokenObjectClass(HqlLexer.java:54)
    at antlr.CharScanner.<init>(CharScanner.java:51)
    at antlr.CharScanner.<init>(CharScanner.java:60)
    Truncated. see log file for complete stacktrace

问题答案:

我解决了这个问题。目前,我正在使用weblogic 12c和Hibernate 3.6.9。

在一个站点中,我发现我们需要antlr.2.7.6.jar在weblogic pre_compile路径变量中添加文件

  1. Weblogic 12c:对于符合Java EE 6的Weblogic版本,我们仅需要添加antlr jar依赖项。
  2. 下载以下文件并将其放在 <WL_HOME>/common/lib/antlr-2.7.7.jar
  3. 将以上文件添加到类路径中

对于Windows:

将以下行添加到 /common/bin/commEnv.cmd中

set PRE_CLASSPATH=%WL_HOME%/common/lib/antlr-2.7.7.jar

对于Linux:

/common/bin/commEnv.sh中 添加以下行 __

<WL_HOME>/PRE_CLASSPATH=$WL_HOME/common/lib/antlr-2.7.7.jar

出口 PRE_CLASSPATH

我在开窗机上遵循了这些步骤。就我而言, wl_homeC:\Oracle\Middleware\wlserver_12.1vcommon
/ lib中
设置为此处。

我添加了这个jar并PRE_CLASSPATH=%WL_HOME%/common/lib/antlr-2.7.7.jar
/common/bin/commEnv.cmd中 添加了设置代码, 然后重新启动了weblogic。这对我来说很好。



 类似资料:
  • 当我使用扫描仪或尝试获取用户输入时,我得到消息: 失败:生成失败,出现异常。 > 出错了:任务“:run”的执行失败。 处理“命令”C:\ProgramFiles\Java\jdk-13.0.1\bin\Java。exe“”以非零退出值1结束 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--scan以获得完整的见解。 在

  • 问题内容: 我试图在Java中实现一个非常简单的Trie,该Trie支持3种操作。我希望它具有一个insert方法,一个has方法(即trie中的某个单词)和一个toString方法以字符串形式返回trie。我相信我的插入工作正常,但是has和toString证明很困难。到目前为止,这就是我所拥有的。 特里类。 和节点类 因此,基本上,在创建Trie时,将创建一个TrieNode作为具有26个子级

  • 当我尝试编译代码时,我得到以下错误: 错误:任务“:app:DexDebug”执行失败。 为google location services/gcm使用了单独的api库,并删除了完整的play service库。这减少了可靠的库方法和错误得到了解决。

  • 问题内容: 请查找每10秒钟重复一次的更新代码。但是,问题在于它每10秒在屏幕上创建一个新的GUI,而不是仅每10秒更新一次数据。请您指教 问题答案: 您只有一门课,Learningfromscrach。在其中,您具有主要功能。在主要功能内,您将创建 另一个 Learningfromscrach 实例 ,该 实例 现在传递给计时器,每10秒运行一次。当它在10秒内运行时,它会创建另一个Learni

  • 我试图使用Selenium/Java为我的自动化脚本运行maven项目。但是,当我执行mvn test命令时,测试并没有运行。请让我知道当我尝试运行maven项目时,cucumber测试没有被执行的问题是什么。 下面是我的pom.xml文件