[SPRING] <jar-file>을 검사하는 동안 오류가 발생하여 entityManagerFactory를 만드는 동안 오류가 발생했습니다.
SPRING을 검사하는 동안 오류가 발생하여 entityManagerFactory를 만드는 동안 오류가 발생했습니다.
나는 http://spring.io/guides/tutorials/data/3을 따르고있다. 나는 아니다 내가 뭘 잘못했는지는 모르겠지만, 내가 이해하지 못하는 예외를 계속 지니고있다. 같은 예외가있는 질문을 검색해 보았습니다.
스택 추적 : http://pastebin.com/WYPqS6da
PersistenceConfig.java
@Configuration
@EnableJpaRepositories
@EnableTransactionManagement
public class PersistenceConfig {
@Bean
public DataSource dataSource() throws SQLException {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder.setType(EmbeddedDatabaseType.HSQL).build();
}
@Bean
public EntityManagerFactory entityManagerFactory() throws SQLException {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setDatabase(Database.HSQL);
vendorAdapter.setGenerateDdl(true);
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("com.scrumster.persistence.domain");
factory.setDataSource(dataSource());
factory.afterPropertiesSet();
return factory.getObject();
}
@Bean
public EntityManager entityManager(EntityManagerFactory entityManagerFactory) {
return entityManagerFactory.createEntityManager();
}
@Bean
public PlatformTransactionManager transactionManager() throws SQLException {
JpaTransactionManager txManager = new JpaTransactionManager();
txManager.setEntityManagerFactory(entityManagerFactory());
return txManager;
}
@Bean
public HibernateExceptionTranslator hibernateExceptionTranslator() {
return new HibernateExceptionTranslator();
}
}
build.gradle :
apply plugin: 'war'
apply plugin: 'tomcat'
apply plugin: 'java'
apply plugin: 'propdeps'
apply plugin: 'propdeps-maven'
apply plugin: 'propdeps-idea'
apply plugin: 'propdeps-eclipse'
apply plugin: 'eclipse'
apply plugin: 'idea'
buildscript {
repositories {
mavenCentral()
maven {
url "http://download.java.net/maven/2"
}
maven { url 'http://repo.spring.io/plugins-release' }
}
dependencies {
classpath 'org.gradle.api.plugins:gradle-tomcat-plugin:0.9.8'
classpath 'org.springframework.build.gradle:propdeps-plugin:0.0.1'
}
}
repositories {
mavenCentral()
maven { url 'http://repo.spring.io/milestone/'}
}
dependencies {
def tomcatVersion = '7.0.42'
tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
"org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}"
tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
}
compile 'org.springframework:spring-webmvc:4.0.5.RELEASE'
compile 'org.springframework.data:spring-data-jpa:1.3.4.RELEASE'
compile 'org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final'
compile 'org.hibernate:hibernate-entitymanager:4.0.1.Final'
compile 'org.springframework.hateoas:spring-hateoas:0.7.0.RELEASE'
compile 'com.jayway.jsonpath:json-path:0.8.1'
compile 'org.springframework.security:spring-security-web:3.2.0.M2'
compile 'org.springframework.security:spring-security-core:3.2.0.M2'
compile 'org.springframework.security:spring-security-config:3.2.0.M2'
compile 'org.slf4j:slf4j-api:1.7.5'
runtime 'org.hsqldb:hsqldb:2.3.2'
runtime 'org.slf4j:slf4j-jdk14:1.7.5'
runtime 'com.fasterxml.jackson.core:jackson-databind:2.3.3'
runtime 'javax.xml.bind:jaxb-api:2.2.9'
provided 'javax.servlet:javax.servlet-api:3.0.1'
testCompile 'com.jayway.jsonpath:json-path-assert:0.8.1'
testCompile 'org.springframework:spring-test:4.0.5.RELEASE'
testCompile 'junit:junit:4.11'
testCompile "org.mockito:mockito-core:1.9.5"
}
task wrapper(type: Wrapper) {
gradleVersion = '1.12'
}
tomcatRunWar.contextPath = ''
스택 트레이스 :
Caused by: java.lang.RuntimeException: Error while reading file:/E:/Files/Source/Workspace-Eclipse2/scrumster/bin/
at org.hibernate.ejb.packaging.NativeScanner.getFilesInJar(NativeScanner.java:193)
at org.hibernate.ejb.Ejb3Configuration.addScannedEntries(Ejb3Configuration.java:503)
at org.hibernate.ejb.Ejb3Configuration.scanForClasses(Ejb3Configuration.java:851)
... 58 more
Caused by: java.io.IOException: invalid constant type: 18
at javassist.bytecode.ConstPool.readOne(ConstPool.java:1113)
at javassist.bytecode.ConstPool.read(ConstPool.java:1056)
at javassist.bytecode.ConstPool.<init>(ConstPool.java:150)
at javassist.bytecode.ClassFile.read(ClassFile.java:765)
at javassist.bytecode.ClassFile.<init>(ClassFile.java:109)
누군가가 나를 올바른 출처로 안내하거나이 곤경에서 나를 도울 수 있기를 바랍니다.
해결법
-
==============================
1.오류:
오류:
invalid constant type: 18
Java 8로 Jar 파일을 빌드했지만 낮은 버전으로 실행하려고 시도하고 있음을 나타냅니다.
다른 곳에서 보았던 것에서는 사용중인 버전이 Java 8과 호환되지 않기 때문에 javassist의 최신 버전 (오류 발생)으로 전환해야 할 수도 있습니다.
-
==============================
2.내 프로젝트 중 하나를 Java 8로 마이그레이션하는 동안 동일한 문제가 발생했습니다. hibernate-entitymanager 아티팩트 버전을 4.2.0.Final에서 4.3.8.Final으로 업데이트하여 해결했습니다.
내 프로젝트 중 하나를 Java 8로 마이그레이션하는 동안 동일한 문제가 발생했습니다. hibernate-entitymanager 아티팩트 버전을 4.2.0.Final에서 4.3.8.Final으로 업데이트하여 해결했습니다.
-
==============================
3.먼저 Java 8에서 작동하는 javassist 버전을 구하십시오.
먼저 Java 8에서 작동하는 javassist 버전을 구하십시오.
<의존성>
org.javassist groupId> javassist artifactId> 3.18.2-GA version> dependency> maven을 사용하는 경우에는 다른 모든 javassist 종속성을 제외하십시오.
`<exclusions> <exclusion> <artifactId>javassist</artifactId> <groupId>org.javassist</groupId> </exclusion> </exclusions>`
-
==============================
4.3.6.10-Final을 사용하는 경우 javassist를 제외해야합니다 (조직 접두사 없음)
3.6.10-Final을 사용하는 경우 javassist를 제외해야합니다 (조직 접두사 없음)
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>3.6.10.Final</version> <scope>compile</scope> <exclusions> <exclusion> <artifactId>javassist</artifactId> <groupId>javassist</groupId> </exclusion> </exclusions> </dependency> <!-- javassist with fixed https://issues.jboss.org/browse/JASSIST-174 --> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.2-GA</version> </dependency>
-
==============================
5.EntityManagerFactory 및 EntityManager에 bean을 제공 할 필요는 없습니다. 콩을 제공하십시오. LocalContainerEntityManagerFactoryBean
EntityManagerFactory 및 EntityManager에 bean을 제공 할 필요는 없습니다. 콩을 제공하십시오. LocalContainerEntityManagerFactoryBean
-
==============================
6.나는 비슷한 문제가 있었다. 내 문제는 다른 버전의 javassist를 사용하는 다른 종속성 (내 경우 jboss weld)이 있다는 것입니다. 제외하지 않았다.
나는 비슷한 문제가 있었다. 내 문제는 다른 버전의 javassist를 사용하는 다른 종속성 (내 경우 jboss weld)이 있다는 것입니다. 제외하지 않았다.
<dependency> <groupId>org.jboss.weld</groupId> <artifactId>weld-se</artifactId> <version>1.0.1-Final</version> <scope>test</scope> <exclusions> <exclusion> <artifactId>javassist</artifactId> <groupId>org.javassist</groupId> </exclusion> </exclusions> </dependency>
그래서 위의 제외는 작동하지 않습니다. jboss 용접에 대한 해결 방법을 찾아야했습니다.
from https://stackoverflow.com/questions/24281235/error-creating-entitymanagerfactory-due-to-error-tying-to-scan-jar-file by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 데이터 - 네이티브 쿼리로 페이징 할 수없는 이유 (0) | 2019.03.14 |
---|---|
[SPRING] 클래스 수준 변수에서 Spring @Value 주석을 사용하는 방법 (0) | 2019.03.14 |
[SPRING] @Transactional이 데이터베이스에 자동으로 저장되는 이유는 무엇입니까? (0) | 2019.03.14 |
[SPRING] Spring 임베디드 데이터베이스는 다른 SQL 언어를 지원합니까? (0) | 2019.03.14 |
[SPRING] Jersey와 함께 Jackson ObjectMapper 사용하기 (0) | 2019.03.14 |