복붙노트

[SPRING] ClassNotFoundException : HQL을 실행하려고 할 때 org.hibernate.hql.ast.HqlToken

SPRING

ClassNotFoundException : HQL을 실행하려고 할 때 org.hibernate.hql.ast.HqlToken

내 코드에서 HQL을 실행하려고하면 다음 예외가 발생합니다. 여러 사이트에서 이것을 확인한 결과 antlr.2.7.6.jar shd가 클래스 경로에 있다는 것을 알았습니다. 내 프로젝트에서 이것을 확인하고 이것이 내 Maven 의존성에 있음을 발견했다. 따라서 그러한 문제가 없어야합니다. 하지만 여전히이 문제가 발생합니다. 이 점에서 누구든지 나를 도울 수 있습니까? "empList = getHibernateTemplate ()."(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;
}

예외 스택 추적 :

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

해결법

  1. ==============================

    1.weblogic 10.3에서이 문제가 발생하여 응용 프로그램 클래스 경로에 antlr-2.7.7.jar가 있고 weblogic-application.xml 파일에 "antlr. *"의 prefer-application-packages를 추가하여 해결할 수있었습니다.

    weblogic 10.3에서이 문제가 발생하여 응용 프로그램 클래스 경로에 antlr-2.7.7.jar가 있고 weblogic-application.xml 파일에 "antlr. *"의 prefer-application-packages를 추가하여 해결할 수있었습니다.

  2. ==============================

    2.정확한 최대 절전 모드 요구에 따라 antlr 의존성을 완전히 제거 할 수 있습니다. 이것을 당신의 최대 절전 모드 속성들에 추가함으로써 당신은 문제없이 실행할 수 있습니다 :

    정확한 최대 절전 모드 요구에 따라 antlr 의존성을 완전히 제거 할 수 있습니다. 이것을 당신의 최대 절전 모드 속성들에 추가함으로써 당신은 문제없이 실행할 수 있습니다 :

    <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
    
  3. ==============================

    3.나는이 문제를 해결했다. 현재 weblogic 12c와 Hibernate 3.6.9를 사용하고 있습니다.

    나는이 문제를 해결했다. 현재 weblogic 12c와 Hibernate 3.6.9를 사용하고 있습니다.

    그리고 사이트 중 하나에서 우리는 weblogic pre_compile path 변수에 antlr.2.7.6.jar 파일을 추가해야한다는 것을 알았습니다.

    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_home이 common / lib 내의 C : \ Oracle \ Middleware \ wlserver_12.1v로 설정되었습니다.

    이 병을 추가하고 /common/bin/commEnv.cmd에 PRE_CLASSPATH = % WL_HOME % / common / lib / antlr-2.7.7.jar 코드를 추가하고 weblogic을 다시 시작했습니다. 이것은 나를 위해 잘 일했다.

  4. ==============================

    4.weblogic.xml 파일을 prefer-application-packages로 수정할 수도 있습니다. 자세한 내용은이 포럼 게시물을 확인하십시오.

    weblogic.xml 파일을 prefer-application-packages로 수정할 수도 있습니다. 자세한 내용은이 포럼 게시물을 확인하십시오.

  5. from https://stackoverflow.com/questions/17819450/classnotfoundexception-org-hibernate-hql-ast-hqltoken-when-ever-i-am-trying-to by cc-by-sa and MIT license