기존 응용 프로그램을 관리하기 위해 cli 도구를 만들고 있습니다. 단지 내에 존재 내 CLI 도구를 실행할 때 응용 프로그램과 테스트를 모두 잘 구축하고 잘 실행하지만, 그럼에도 불구하고 나는와 Javassist 실패가 나타날 수최대 절전 모드에서의 Javassist 오류 : 유효하지 않은 상수 유형 : 60
INFO: Bytecode provider name : javassist
...
INFO: Hibernate EntityManager 3.5.1-Final
Exception in thread "main" javax.persistence.PersistenceException: Unable to configure EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:371)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
...
at com.sophware.flexipol.admin.AdminTool.<init>(AdminTool.java:40)
at com.sophware.flexipol.admin.AdminTool.main(AdminTool.java:69)
Caused by: java.lang.RuntimeException: Error while reading file:flexipol-jar-with-dependencies.jar
at org.hibernate.ejb.packaging.NativeScanner.getClassesInJar(NativeScanner.java:131)
at org.hibernate.ejb.Ejb3Configuration.addScannedEntries(Ejb3Configuration.java:467)
at org.hibernate.ejb.Ejb3Configuration.addMetadataFromScan(Ejb3Configuration.java:457)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:347)
... 11 more
Caused by: java.io.IOException: invalid constant type: 60
at javassist.bytecode.ConstPool.readOne(ConstPool.java:1027)
at javassist.bytecode.ConstPool.read(ConstPool.java:970)
at javassist.bytecode.ConstPool.<init>(ConstPool.java:127)
at javassist.bytecode.ClassFile.read(ClassFile.java:693)
at javassist.bytecode.ClassFile.<init>(ClassFile.java:85)
at org.hibernate.ejb.packaging.AbstractJarVisitor.checkAnnotationMatching(AbstractJarVisitor.java:243)
at org.hibernate.ejb.packaging.AbstractJarVisitor.executeJavaElementFilter(AbstractJarVisitor.java:209)
at org.hibernate.ejb.packaging.AbstractJarVisitor.addElement(AbstractJarVisitor.java:170)
at org.hibernate.ejb.packaging.FileZippedJarVisitor.doProcessElements(FileZippedJarVisitor.java:119)
at org.hibernate.ejb.packaging.AbstractJarVisitor.getMatchingEntries(AbstractJarVisitor.java:146)
at org.hibernate.ejb.packaging.NativeScanner.getClassesInJar(NativeScanner.java:128)
... 14 more
나는 항아리 단위 및 통합 테스트로 괜찮 알고 있기 때문에 그것을 실행, 나는 javassist에 문제가있을 거라 생각, 그래서 나는 cglib을 시도했다. 그런 다음 바이트 코드 공급자가 cglib로 표시하지만 여전히 javassist가있는 정확한 스택 추적을 얻습니다.
CGLIB는 클래스 경로에 확실히 :
$ unzip -l flexipol-jar-with-dependencies.jar | grep cglib | wc -l
383
나는 3.4 및 3.5를 최대 절전 모드와 동일한 오류가 모두 시도했습니다. javassist에 문제가 있습니까?
업데이트 : Eclipse (오른쪽 클릭 -> 실행 파일 -> Java 응용 프로그램)에서 응용 프로그램을 성공적으로 실행할 수는 있지만 생성 된 jar-with-dependencies는 실패합니다. 차이점은 이클립스의 javassist가 포함 된 jar를 검사하지 않는다는 것입니다. 오히려 모든 클래스 파일 (및 일부 종속 타사 jar 파일)을 검사하고 있습니다.
스캔 코드 앞에'shopt 내부 -s globstar'를 추가하는 것을 잊지 마세요 게시물의 상단에. –