Spring Boot-deployment - NoClassDefFoundError
Ich versuche bereitstellen Spring-Boot-Anwendung. Ich Baue eine jar-Datei durch maven-plugins. Aber ich bekomme eine Fehlermeldung:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at com.spring-boot.example.AppConfig.main(AppConfig.java:18)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
Habe ich versucht, indem zusätzliche plugins, um die pom.xml die Datei, aber keiner hat funktioniert. Jede Hilfe wird sehr geschätzt.
Dies ist mein pom.xml Datei:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spring-boot.example</groupId>
<artifactId>spring-boot-example</artifactId>
<version>0.1</version>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<start-class>com.spring-boot.example.AppConfig</start-class>
<spring.version>4.0.7.RELEASE</spring.version>
<log4j.version>1.2.17</log4j.version>
<jdk.version>1.7</jdk.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.1.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>1.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- Wie sind Sie zum erstellen, bereitstellen und ausführen der Anwendung? Der Fehler bedeutet, dass Sie fehlen Frühling jar-Dateien im classpath.
- Ich führen Sie es durch die klirrend-Plugins -> spring-boot:ausführen-> "Ausführen von Maven-Build". Ich bereitstellen, indem Sie auf Plugins -> Glas: - Glas -> "Ausführen von Maven-Build".
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersten ich schlage vor, Sie aktualisieren Sie Ihre Abhängigkeiten, um die neueste version des Spring-Boot-framework, falls zutreffend.
Außerdem, unabhängig von der version, die Sie verwenden, die Klasse, die Sie noch fehlt, ist enthalten in dieser Abhängigkeit:
aber denken Sie daran, dass alle Spring-Boot-Abhängigkeiten stützen sich auf das Spring-framework transitive Abhängigkeiten, so überprüfen Sie in der IDE-dependency hierarchy panel, wenn Sie vorhanden sind.
Abhängig von der Art und Weise, die Sie bereitstellen Ihrer Anwendung müssen Sie sicher sein, dass alle Abhängigkeiten werden zur Laufzeit verfügbar.
Diese können erhalten werden, beispielsweise unter Verwendung der
repackage
Ziel in derspring-boot-maven-plugin
in Ihrem pom istbuild
Abschnitt:Ich würde vorschlagen, mit maven-assembly-plugin, so dass alle Abhängigkeiten vorhanden sein wird in der jar-Datei, nachdem es gebaut wird.
Hier ist die Dokumentation für Sie: http://maven.apache.org/plugins/maven-assembly-plugin/
versuchen
$ mvn dependency:purge-local-repository
vom terminal aus. Es kann sein, weil einige Ihrer Abhängigkeit wurde beschädigt. Dieser Befehl hat bei mir