spring boot无法运行 - 启动时出现IllegalAccessError

时间:2013-11-21 14:24:54

标签: spring spring-boot

我有一个奇怪的问题,我无法解决。我正在尝试使用示例JPA sprint boot(v0.5.0-M6)项目作为我正在编写的应用程序的起点。我抓住了JPA样本并让它在本地运行。然后我继续将我的代码添加到该项目中。我导入了eclipse并以spring-boot运行。然后我收到了这个错误:

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)

据我所知,这是错误的应用程序上下文,因为我没有使用XML配置而是使用注释来驱动配置。 Spring boot会自动选择这个,我需要告诉它不要使用上面的内容。至少这是我认为我需要做的事情。

我在这里和spring.io论坛上搜索过,但似乎没有人遇到同样的问题。

问题:使用自动配置选择应用程序上下文的原因是什么?

我应该考虑解决上述问题?我还需要提供什么来帮助调试自动配置问题?

TIA,

斯科特

2 个答案:

答案 0 :(得分: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>

和maven依赖

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

希望得到这个帮助。

答案 1 :(得分:0)

我遇到了同样的问题,并解决了将引用修复为boot-starter-parent pom的问题。

在我使用的pom.xml文件中:

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

我现在有一些紧急问题需要解决,所以我没有检查这个父pom,看看这里有什么重要,但我希望这可以帮助你 - 不要忘记验证你正在使用的版本!< / p>