【问题标题】:Spring Boot / REST - Sample Code Terminates After LaunchSpring Boot / REST - 示例代码在启动后终止
【发布时间】:2017-05-24 07:52:50
【问题描述】:

我只是试图运行示例代码(通过 STS IDE 作为 Spring Boot 应用程序),但它只是终止(并且没有发生错误)。从git下载的,没有修改。

构建 RESTful Web 服务 示例代码:https://spring.io/guides/gs/rest-service/ Git 仓库:git clone https://github.com/spring-guides/gs-rest-service.git

**注意:我尝试的一件事,将 [spring-boot-starter-tomcat] 放入我的 maven 依赖项并下载,但无济于事。

:: Spring Boot :: (v1.4.3.RELEASE)

2017-01-09 17:33:14.942 信息 5548 --- [主要] hello.Application : 启动应用程序 TDL05100504 与 PID 5548 (C:\wm_dev\gs-rest-service\complete\target\classes 由 marshw2 启动 在 C:\wm_dev\gs-rest-service\complete) 2017-01-09 17:33:14.946 信息 5548 --- [主]你好。应用程序: 没有活动配置文件集,回退到默认配置文件:默认 2017-01-09 17:33:15.043 信息 5548 --- [主要] s.c.a.AnnotationConfigApplicationContext : 刷新 org.springframework.context.annotation.AnnotationConfigApplicationContext@6dc17b83: 启动日期 [Mon Jan 09 17:33:15 EST 2017];上下文层次的根 2017-01-09 17:33:17.526 信息 5548 --- [主要] o.s.j.e.a.AnnotationMBeanExporter :为 JMX 注册 bean 启动时曝光 2017-01-09 17:33:17.553 INFO 5548 --- [
main] hello.Application : 启动的应用程序 在 3.224 秒内(JVM 运行 4.192) 2017-01-09 17:33:17.555 信息 5548 --- [线程 1] s.c.a.AnnotationConfigApplicationContext : 结束 org.springframework.context.annotation.AnnotationConfigApplicationContext@6dc17b83: 启动日期 [Mon Jan 09 17:33:15 EST 2017];上下文层次的根 2017-01-09 17:33:17.559 信息 5548 --- [线程 1] o.s.j.e.a.AnnotationMBeanExporter :取消注册 JMX 公开 关闭时的 bean

【问题讨论】:

  • 尝试从 start.spring.io 下载一个 Spring Boot 示例并将您的代码添加到其中。
  • 哪个示例代码?这里的问题应该是自包含的。发布链接是不够的,但您甚至没有这样做。
  • 代码是否启动任何 WebServer 或其他具有保持进程运行的非守护线程的东西。发布你的主要方法。
  • 我很抱歉。它是构建 RESTful Web 服务的主要示例。 spring.io/guides/gs/rest-service git clone github.com/spring-guides/gs-rest-service.git
  • @KlausGroenbaek - 不,它只是试图公开一个端点,然后打印“Hello World”。我现在有问题中代码的链接。

标签: java spring spring-boot spring-rest


【解决方案1】:

项目将按原样运行,因此您无需进行任何更改。在 src/main 下创建一个名为 resources 的文件夹。在该文件夹中添加一个名为 application.properties 的文件(或 application.yml,如果您更喜欢 yaml)。在此文件中添加一行,以提高日志记录级别以进行调试,您应该获得有关正在发生的事情的更多详细信息。

src/main/resources/application.properties

logging.level.org.springframework=DEBUG

这将产生大量信息,但应该足以向您展示发生了什么。

【讨论】:

  • 我启动了春季伐木(如您所建议的那样),但在我看来,它没有发现任何可疑之处。结果在这里。 nomorepasting.com/getpaste.php?pasteid=40082
  • 非常好奇。我的下一个建议是使用mvn package 构建超级jar,并通过java -jar target/gs-rest-service-0.1.0.jar 在命令行上运行它
  • 您好,感谢您的反馈!我确实尝试过,输出(和行为)与我在 STS 中看到的相匹配。发生的一件有趣的事情是我不得不跳过测试(mvn install -DskipTests)。正常构建时,我通过字段'mockMvc' - org.springframework.test.web.servlet.MockMvc 表达了不满意的依赖关系。
  • 嗯,这让我想知道您是否没有其他 Maven 问题。您可以尝试删除本地 maven 存储库并运行 mvn package,可能您的某些本地工件已损坏。
  • 嗨,Lane,是的,已解决,感谢您的帮助!在进行 Maven 更新时,我已经尝试在 STS 中使用“强制更新快照/发布”选项,但看起来这实际上可能不起作用。但是,在文件资源管理器中物理删除 repo 确实起到了作用。
【解决方案2】:

对我来说,这个问题是由我的 Maven 存储库损坏引起的。使用 STS 3.8.3,我在进行 Maven 更新时尝试“强制更新快照/发布”。这没有起作用。但是,在文件资源管理器中物理删除存储库(并重建)确实可以完成这项工作。

【讨论】:

    【解决方案3】:

    更改示例代码如下,它会正常工作:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.4.RELEASE</version>
    </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-web</artifactId>
        </dependency>
    
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    

    【讨论】:

      猜你喜欢
      • 2015-02-08
      • 2013-09-25
      • 2017-03-05
      • 1970-01-01
      • 1970-01-01
      • 2020-04-23
      • 1970-01-01
      相关资源
      最近更新 更多