2016-09-07 7 views
7

Ich versuche, eine einfache SpringBoot-Anwendung zu erstellen. Wenn ich meine Feder Boot-Anwendung es shutdown immediate laufe nach dem Start, unten ist das Konsolenprotokoll:Spring Boot-Anwendung Herunterfahren sofort nach dem Start

. ____   _   __ _ _ 
/\\/___'_ __ _ _(_)_ __ __ _ \ \ \ \ 
(()\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 
\\/ ___)| |_)| | | | | || (_| | )))) 
    ' |____| .__|_| |_|_| |_\__, |//// 
=========|_|==============|___/=/_/_/_/ 
:: 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.spring[email protected]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.spring[email protected]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 

Unten ist mein 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> 

Ich möchte den Server laufen lassen, damit der Client ihn für die Antwort treffen kann. Bitte vorschlagen.

+0

Did Sie versuchen mit einer richtigen Release-Version 1.4.0.RELEASE für den Spring-Boot-Starter –

+1

Können Sie auch versuchen, den Befehl "MVN-Abhängigkeit: Baum" ausführen und überprüfen, ob die Tomcat-Abhängigkeit im Projekt existiert. –

+0

Wie haben Sie ausgeführt Anwendung? – kuhajeyan

Antwort

5

Die einzige mögliche Erklärung, die ich mir vorstellen kann, ist, dass tomcat embedded jar nicht in den Abhängigkeiten/jar enthalten ist. Da Sie bereits die Abhängigkeit "spring-boot-starter-web" definiert haben, sollte es auch die eingebetteten Tomcat-Abhängigkeiten transitiv gezogen haben. Aber irgendwie ist es ausgeschlossen.

Dinge auszuprobieren.

  1. Execute "mvn Abhängigkeit: Baum" und prüfen Sie, ob die tomcat Abhängigkeiten bestehen und in
  2. Veränderung der Feder Boot Starter Version 1.4.0.RELEASE scope "übersetzen".
+0

Tomcat-Abhängigkeiten sind dort, vor und nach der Ausführung von "mvn Abhängigkeit: Baum" Befehl –

+0

Nach dem Ändern Spring Boot-Starter-Version zu 1.4.0.RELEASE, zeigt es Kompilierung Fehler "kann Klasse ComponentScan, Komponente, Konfiguration nicht auflösen". –

+0

Führen Sie "mvn clean install" aus, damit Maven die erforderlichen Jars für die neue Version herunterlädt. Wenn der Fehler weiterhin besteht, können Sie die Importanweisungen auch in Ihre Klasse einfügen. –

0

Wenn wir keine .RELEASE-Version von spring verwenden, müssen wir die untenstehenden Repositories in unsere pom.xml-Datei einfügen.

Und wir können den Befehl "mvn spring-boot: run" verwenden, um unsere Federanwendung von der Befehlszeile aus auszuführen.

<!-- (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> 
0

Was löste es für mich war die Aktualisierung der "Eltern" Verweis in der pom.xml.

das ist mein Arbeits 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> 

0

Es funktionierte, wenn ich Feder Boot-Version wie folgt geändert:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.0.RELEASE</version> 
    </parent> 
3

Try server.port=someAvailablePortNumber in der application.properties Datei hinzufügen befindet sich in "Ressourcen" Ordner.

Ich hatte auch das gleiche Problem. Ich habe viele Änderungen in der Datei pom.xml versucht, aber nichts hat für mich funktioniert. In meinem Fall war der Port 8080 nicht verfügbar, daher konnte die Anwendung Tomcat nicht über den Standard-Port (z. B. 8080) starten, wodurch dieser sofort heruntergefahren wurde.

Das Ändern der Portnummer half Tomcat zu starten und die Anwendung zu arbeiten. Hoffe es hilft :)

0

In Ihrer Hauptfunktion "SpringApplication.run (Main.class, args.close());" sollte nicht in der Nähe sein, es sollte wie "SpringApplication.run (Main.Klasse, args);“

. Beispiel:

@SpringBootApplication 
public class Main{ 
    public static void main(String[] args) { 
    SpringApplication.run(Main.class, args); 
    } 
} 
0

Ihre Log-Konfiguration überprüfen, vielleicht, Sie versuchen, Protokolle in den Ordner zu speichern, die nicht erstellt werden kann

<appender name="allFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>/var/log/app/all.log</file> 
     ... 
</appender> 
Verwandte Themen