J'essaie de créer une application SpringBoot simple. Lorsque j'exécute mon application Spring Boot, elle s'arrête immédiatement après le démarrage. Voici le journal de la console:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.4.1.BUILD-SNAPSHOT)
2016-09-06 18:02:35.152 INFO 22216 --- [ main] com.example.SpringBootDemo1Application : Starting SpringBootDemo1Application on IN-FMCN882 with PID 22216 (E:\workspace\springBoot\SpringBootDemo1\target\classes started by Rahul.Tyagi in E:\workspace\springBoot\SpringBootDemo1)
2016-09-06 18:02:35.158 INFO 22216 --- [ main] com.example.SpringBootDemo1Application : No active profile set, falling back to default profiles: default
2016-09-06 18:02:35.244 INFO 22216 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@14dd9eb7: startup date [Tue Sep 06 18:02:35 IST 2016]; root of context hierarchy
2016-09-06 18:02:36.527 INFO 22216 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2016-09-06 18:02:36.546 INFO 22216 --- [ main] com.example.SpringBootDemo1Application : Started SpringBootDemo1Application in 1.781 seconds (JVM running for 2.376)
2016-09-06 18:02:36.548 INFO 22216 --- [ Thread-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@14dd9eb7: startup date [Tue Sep 06 18:02:35 IST 2016]; root of context hierarchy
2016-09-06 18:02:36.550 INFO 22216 --- [ Thread-1] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
Ci-dessous mon code:
SpringBootDemo1Application.Java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Configuration
@EnableAutoConfiguration
@ComponentScan
@Controller
public class SpringBootDemo1Application {
@ResponseBody
@RequestMapping("/")
public String entry(){
return "My spring boot application";
}
public static void main(String[] args) {
SpringApplication.run(SpringBootDemo1Application.class, args);
}
}
pom.xml
<?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.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.BUILD-SNAPSHOT</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Je veux que le serveur continue de fonctionner afin que le client puisse appuyer dessus pour obtenir une réponse ..___ S'il vous plaît Suggérer.
La seule explication possible à laquelle je puisse penser est que le jar intégré à Tomcat n’est pas inclus dans les dépendances/jar. Comme vous avez déjà défini la dépendance "spring-boot-starter-web", il aurait également dû extraire de manière transitoire les dépendances Tomcat intégrées. Mais d'une manière ou d'une autre, c'est exclu.
Choses à essayer.
Cela a fonctionné quand j'ai changé la version de démarrage de printemps comme suit:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
Essayez d’ajouter server.port=someAvailablePortNumber
dans le fichier application.properties
situé dans le dossier "resources".
Je faisais également face au même problème. essayé beaucoup de modifications suggérées dans le fichier pom.xml mais rien ne fonctionnait pour moi. Dans mon cas, le port 8080 n’était pas disponible, de sorte que l’application n’a pas pu démarrer Tomcat avec le port par défaut (8080), ce qui l’a immédiatement arrêté.
La modification du numéro de port a permis de démarrer Tomcat et l'application a commencé à fonctionner. J'espère que ça aide :)
j'ai rencontré le même problème, mon OS est Win7, mon idée est Eclipse, après avoir changé la version de démarrage de printemps en version 1.5.7.release, tout est ok.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
j'ai essayé spring boot 2.0.2.release, 1.5.13.release, 1.5.1.release, ils ne peuvent pas tous fonctionner sur mon OS win7 en utilisant Eclipse, mais ils peuvent exécuter mon ubuntu16.04 en ligne de commande et compiler avec même code.
Effacer mon dépôt Maven local a résolu ce problème pour moi. Le moyen le plus simple consiste à supprimer ~/.m2/repository
Vérifiez votre configuration de journal, vous essayez peut-être de sauvegarder les journaux dans le dossier, ils ne peuvent pas être créés.
<appender name="allFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/app/all.log</file>
...
</appender>
Si nous n'utilisons pas de version .RELEASE de spring, nous devons ajouter les référentiels ci-dessous dans notre fichier pom.xml.
Et nous pouvons utiliser la commande "mvn spring-boot: run" pour exécuter notre application Spring en ligne de commande.
<!-- (you don't need this if you are using a .RELEASE version) -->
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
Dans votre fonction principale "SpringApplication.run (Main.class, args.close ());" ne devrait pas être proche, cela devrait être comme "SpringApplication.run (Main.class, args);"
Exemple :
@SpringBootApplication
public class Main{
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
Ce qui l’a résolu pour moi a été de mettre à jour la référence "parent" dans pom.xml.
c'est mon travail pom.xml:
<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.boot</groupId>
<artifactId>project-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
<name>project-boot</name>
<url>http://maven.Apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>