Reputation: 1194
I am trying to build a simple SpringBoot application. When I run my spring boot application it shutdown immediate after starting, below is the console log:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: 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
Below is my 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>
I want to keep the server running so that client can hit it for response. Please Suggest.
Upvotes: 8
Views: 25654
Reputation: 116
removed spring-boot-starter-tomcat dependency and it worked.
Upvotes: 1
Reputation: 1508
Clearing my local Maven repo solved this issue for me. Easiest way is to remove ~/.m2/repository
Upvotes: 1
Reputation: 1
i encountered the same problem, my os is win7, my ide is eclipse, after i changed spring boot version to 1.5.7.release, erverything is 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>
i have tried spring boot 2.0.2.release, 1.5.13.release, 1.5.1.release, they all cant run on my win7 os using eclipse, but they can run my ubuntu16.04 using command line and mvn compile with the same code.
Upvotes: 0
Reputation: 346
Check your log config, maybe you're trying to save logs into the folder, that can't be created.
<appender name="allFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/app/all.log</file>
...
</appender>
Upvotes: 0
Reputation: 1
In your main function "SpringApplication.run(Main.class, args.close());" should not be in close , it shuld be like "SpringApplication.run(Main.class, args);"
Example :
@SpringBootApplication
public class Main{
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
Upvotes: 0
Reputation: 123
Try adding server.port=someAvailablePortNumber
in the application.properties
file located in "resources" folder.
I was also facing same problem. tried a lot of changes suggested in pom.xml file but nothing worked for me. In my case the port 8080 wasn't available so it application wasn't able to start tomcat using default port(i.e.: 8080) causing it to shutdown immediately.
Changing the port number helped to start tomcat and application started working. Hope it helps :)
Upvotes: 3
Reputation: 4042
It worked when I changed spring boot version as follows:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
Upvotes: 3
Reputation: 5495
What solved it for me was updating the "parent" reference in the pom.xml.
this is my working 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>
Upvotes: 0
Reputation: 1194
If we are not using a .RELEASE version of spring we need to add below repositories in our pom.xml file.
And we can use command "mvn spring-boot:run" to run our spring application from command line.
<!-- (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>
Upvotes: 0
Reputation: 2343
The only possible explanation i can think of is that tomcat embedded jar is not included in the dependencies/jar. Since you have already defined "spring-boot-starter-web" dependency, it should have transitively pulled the embedded tomcat dependencies as well. But somehow it is excluded.
Things to try out.
Upvotes: 9