2013-11-21 3 views
2

이상한 문제가 있으며 해결할 수 없었습니다. 나는 샘플 JPA sprint boot (v0.5.0-M6) 프로젝트를 내가 쓰고있는 애플리케이션의 시작점으로 사용하려고 노력 중이다. JPA 샘플을 가져 와서 로컬에서 실행했습니다. 그런 다음 프로젝트에 코드를 추가했습니다. 나는 이클립스로 가져와 봄 부츠로 실행합니다. 내가 구성을 구동하기 위해 XML 구성하지만 주석을 사용하지하고 있기 때문에, 내가 무엇을 말할 수에서스프링 부트 실행 실패 - 시작시 IllegalAccessError

Exception in thread "main" java.lang.IllegalAccessError: tried to access class org.springframework.core.io.DefaultResourceLoader$ClassPathContextResource from class org.springframework.boot.context.embedded.EmbeddedWebApplicationContext 
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getResourceByPath(EmbeddedWebApplicationContext.java:386) 
at org.springframework.core.io.DefaultResourceLoader.getResource(DefaultResourceLoader.java:100) 
at org.springframework.context.support.GenericApplicationContext.getResource(GenericApplicationContext.java:211) 
at org.springframework.boot.context.initializer.ConfigFileApplicationContextInitializer.load(ConfigFileApplicationContextInitializer.java:192) 
at org.springframework.boot.context.initializer.ConfigFileApplicationContextInitializer.load(ConfigFileApplicationContextInitializer.java:134) 
at org.springframework.boot.context.initializer.ConfigFileApplicationContextInitializer.initialize(ConfigFileApplicationContextInitializer.java:121) 
at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:403) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:287) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:749) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:738) 

, 이것은 잘못된 응용 프로그램 컨텍스트입니다 : 그럼 난이 오류가 발생합니다. 스프링 부트는 자동적으로 이것을 선택하고 위와 같은 것을 사용하지 말 것을 요구할 필요가있다. 적어도 그것이 내가해야 할 일이라고 생각합니다.

나는 여기와 spring.io 포럼에서 검색했지만 아무도 같은 문제가없는 것 같습니다.

질문 : 자동 구성을 사용하여 응용 프로그램 컨텍스트를 선택하게하는 요인은 무엇입니까?

위의 문제를 해결하려면 어떻게해야합니까? 자동 구성 문제를 디버그하는 데 도움이되는 다른 정보가 있습니까?

TIA,

스콧

+0

'java.lang.IllegalAccessError'는 일반적으로 환경 문제의 징후입니다. 클래스 패스의 잘못된 jar 파일 또는 잘못된 JDK 일 가능성이 있습니까? 좀 더 자세히 말하기가 어렵다. 샘플을 변경하지 않고 작업 했습니까? 변경 사항은 무엇입니까? 코드를 공유 할 수 있습니까? –

답변

3

은 저도 같은 문제가있어. maven을 사용하는 경우 pom.xml을 확인하십시오.

Spring Lib에서 충돌 버전을 제거하십시오.

<properties> 
     <hibernate.version>4.2.0.Final</hibernate.version> 
     <mysql.connector.version>5.1.21</mysql.connector.version> 
     <spring.version>3.2.2.RELEASE</spring.version> 
</properties> 

나는이 라인

<spring.version>3.2.2.RELEASE</spring.version> 

과 받는다는 의존성에에게 단지

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-jdbc</artifactId> 
</dependency> 

희망이 도움을 제거합니다.

+1

당신의 대답은 제가 제 문제를 해결하도록 이끌었습니다. 그것은 다중 모듈 부모 POM에서 스프링 코어의 특정 버전 (3.2.5)에 대한 종속성을 가졌기 때문입니다. 나는 그것이 문제의 원인이라고 상상하지 못했지만 그것이 그랬던 것처럼 보입니다. 도와 주셔서 감사합니다! –

+0

이것은 나에게 엄청난 도움이되었습니다! 필자의 경우에는 다중 모듈 상위 POM을 사용했습니다. 부모님 POM에서는 이 spring-boot-dependencies POM에서와 같은 버전으로 설정되었는지 확인해야했습니다. –

0

나는 같은 문제에 직면했고 참조를 boot-startter-parent pom으로 수정했다. 내가 사용하는 pom.xml 파일에서

:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>0.5.0.M6</version> 
</parent> 

지금 해결하기 위해 몇 가지 긴급한 문제가, 그래서 여기에 중요한 무엇이 있는지이 부모 치어를 검사하지 않았다, 그러나 나는이 할 수있는 희망 도움을 요청하십시오 - 사용중인 버전을 확인하는 것을 잊지 마십시오!

관련 문제