Spring Boot应用程序在启动时终止

时间:2016-10-23 17:13:37

标签: java spring spring-boot

我正在尝试一个简单的弹簧启动应用程序,它总是自动关闭

 :: Spring Boot ::        (v1.4.1.RELEASE)
2016-10-23 13:05:21.681  INFO 16532 --- [           main] com.example.RestBootApplication          : No active profile set, falling back to default profiles: default
2016-10-23 13:05:21.766  INFO 16532 --- [           main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@6e20b53a: startup date [Sun Oct 23 13:05:21 EDT 2016]; root of context hierarchy
2016-10-23 13:05:23.682  INFO 16532 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2016-10-23 13:05:23.704  INFO 16532 --- [           main] com.example.RestBootApplication          : Started RestBootApplication in 2.632 seconds (JVM running for 5.168)
2016-10-23 13:05:23.705  INFO 16532 --- [       Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@6e20b53a: startup date [Sun Oct 23 13:05:21 EDT 2016]; root of context hierarchy
2016-10-23 13:05:23.708  INFO 16532 --- [       Thread-2] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown

的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>

    <name>rest-boot</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

主类

@SpringBootApplication
public class RestBootApplication {

    public static void main(String[] args) {
        SpringApplication.run(RestBootApplication.class, args);
    }
}

控制器

@Controller
public class HelloController {

    @RequestMapping("/hello")
    String helloWorld(){
        return "helloWorld";
    }

}

尝试在spring工具套件中运行。它总是在开始后停止。我甚至添加了#34; spring-boot-starter-web&#34;在查看了一些stackoverflow问题后,仍然面临着这个问题。

请有人指出这个问题。

14 个答案:

答案 0 :(得分:13)

这发生在我身上,结果证明是一个损坏的maven apache存储库。

要修复它,我删除了apache repo - 在我的Mac上,它位于/Users/myname/.m2/repository/org/apache。

在电脑上它应该是c:\ users \ myname.m2 \ repository \ org \ apache。

然后我运行了Maven - 更新项目,然后我运行了我的课程并修复了它。

答案 1 :(得分:8)

就我而言,只需将以下内容添加到pom文件

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

答案 2 :(得分:1)

我的建议是删除此依赖

[+-]\d{2}.\d{2}

您也可以尝试添加此tomcat依赖项:

 <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

答案 3 :(得分:1)

您的问题的解决方案

  1. 我查看了您的POM.xml,它看起来很好,并且不需要对其进行任何更改。
  2. regexp = /\b[[:alpha:]]+\b/ p "this is a number 1234".scan(regexp) # => ["this", "is", "a", "number"] 是一种固执的依赖关系,它会自动提取您的其他依赖关系。请检查它是否已在您的Maven依赖项中提取嵌入式Tomcat,如下所示。
  3. Dep

    1. 转到application.properties文件或application.yml更改服务器端口spring-boot-starter-web并以server.port=9081为目标运行maven目标 如果这些选项无法锻炼,请尝试使用此方法posted

答案 4 :(得分:1)

我遇到了同样的问题,我有解决方法:

  • 我删除了maven的本地存储库
  • 再次运行maven install
  • 将应用程序作为spring boot app运行

====&GT;哈利路亚,它只是通过魔法工作!

答案 5 :(得分:1)

首先检查端口8080是否可用或正在被其他进程使用。

如果此端口不可用,请尝试在位于&#34;资源&#34;中的server.port=someAvailablePortNumber文件中添加application.properties。夹。

我也遇到了同样的问题。尝试了pom.xml文件中建议的很多更改,并尝试了多个与maven相关的建议(例如:删除文件夹,更新项目等),但没有任何对我有用。在我的情况下,端口8080不可用,因此应用程序无法使用默认端口(即:8080)启动tomcat,导致它立即关闭。

更改端口号有助于启动tomcat并开始工作。希望它有所帮助:)

答案 6 :(得分:1)

检查您得到的退出代码。

如果得到“退出代码为1的处理完成” ,则表示正在引发异常。因此,您可以在SpringApplication.run()语句周围放置try catch块并打印出堆栈跟踪。

public static void main(String[] args) {
    try {
        SpringApplication.run(MyApplication.class, args);
    } catch (Exception e) {
        e.printStackTrace(); 
    }
}

例如来自https://stackoverflow.com/a/59017774/9531109

的talen示例

答案 7 :(得分:0)

我刚刚接受了你的代码并从头开始了一个Spring-Boot应用程序。在我的机器上,当我运行

时,代码会按预期启动
mvn spring-boot:run

为了确保,我们有相同的代码,我将我的解决方案上传到Github,请参阅https://github.com/michaellihs/stackoverflow-40205600

只是想知道它为什么不适合你:运行另一个正在侦听端口8080的Tomcat实例 - 这将立即停止你的应用程序(但通常显示不同的日志/错误消息)。

答案 8 :(得分:0)

在我的情况下,我还必须清除完整的.m2目录并运行clean install才能使其正常工作。不确定什么是冲突的。

答案 9 :(得分:0)

对我来说,嵌入式tomcat已损坏。我做了一个mvn构建,并在下面的行中找到了警告。

[警告]错误读取/home/syam/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.23/tomcat-embed-core-8.5.23.jar; LOC标题无效(签名错误)

所以删除了tomcat的embed目录并做了一个maven clean,事情就开始了。

答案 10 :(得分:0)

我在application.properties下将端口从8080更改为8083,该资源位于resources文件夹下。 server.port = 8083并且有效。

答案 11 :(得分:0)

为后代添加此内容。

对于这些问题,运行mvn help:effective-pom并查看已获取的版本是非常有利的。通常有一个父模块覆盖spring-boot期望可用的模块/版本。

答案 12 :(得分:0)

我有同样的问题,我有解决方法: 我将pom.xml中的版本从1.4.2.RELEASE更改为1.4.1.RELEASE

答案 13 :(得分:-1)

我删除了maven依赖项文件夹,它对我有用