amitvc
amitvc

Reputation: 21

spring boot app initialization failure

Adding the spring boot dependencies in pom.xml and running spring boot app causes following errors -

> xception in thread "main" java.lang.IllegalAccessError: tried to
> access method
> org.springframework.core.io.support.SpringFactoriesLoader.loadFactoryNames(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/List;
> from class org.springframework.boot.SpringApplication     at
> org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:392)
>   at
> org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:384)
>   at
> org.springframework.boot.SpringApplication.initialize(SpringApplication.java:260)
>   at
> org.springframework.boot.SpringApplication.<init>(SpringApplication.java:236)
>   at
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1185)
>   at
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1174)
>   at com.catalina.platform.batch.Application.main(Application.java:12)

See below the snap shot of my pom.xml

<dependencyManagement>
     <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.3.6.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-ftp</artifactId>
        <version>${spring.ftp.version}</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.1.3</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.1.3</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

Upvotes: 1

Views: 6784

Answers (2)

ksw
ksw

Reputation: 53

I too had the same problem when i created a Spring Simple Web Maven Project and added few other dependencies in my pom.xml to write a web service for spring boot application

Updating my dependencies so that the version mismatch is handled and then doing Run As-->Maven clean , Run As --> Maven Install followed by Maven--Update Project worked in my case

Upvotes: 0

Phil Webb
Phil Webb

Reputation: 8642

Usually IllegalAccessError problems are due to an incorrect version of Spring being pulled in by Maven. Spring Boot 1.3.6 needs Spring Framework 4.2.7.

The spring-boot-dependencies dependencyManagement import is normally enough to ensure the correct version is used and the limited section of the POM that you've posted looks correct.

I would suggest running mvn dependency:tree to check that the correct version is being pulled in. Also check that you're on the latest Maven release.

Failing that, a project that reproduces the issue would help a lot with tracking down the cause.

Upvotes: 1

Related Questions