1

我有一个奇怪的问题,我无法解决。我正在尝试使用示例 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,

斯科特

4

2 回答 2

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>

希望这有帮助。

于 2013-12-03T05:52:35.303 回答
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 来看看这里有什么重要的,但我希望这可以帮助你 - 不要忘记验证你正在使用的版本!

于 2013-12-05T21:35:14.170 回答