【问题标题】:Spring boot rashes first and then start automatically in Pivotal Cloud Foundry在 Pivotal Cloud Foundry 中 Spring boot 先起皮后自动启动
【发布时间】:2017-01-16 21:48:55
【问题描述】:

当我推动我的弹簧靴 - 1.3.3.RELEASE 时,它崩溃了很长时间,最后才启动。但是最新的事件显示崩溃了,但当前状态一直在运行。

springboot新增embed-tomcat -8.0.32。

错误:

2017-01-16T16:29:12.670-05:00 [APP/PROC/WEB/0] [OUT] at org.apache.catalina.startup.Tomcat.start(Tomcat.java:345) ~[tomcat-embed-core-8.0.32.jar!/:8.0.32]
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] at java.lang.reflect.Method.invoke(Method.java:498)
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:62)
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] Caused by: org.springframework.context.ApplicationContextException: 
Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] Caused by: java.lang.reflect.InvocationTargetException
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] at java.lang.Thread.run(Thread.java:745)
2017-01-16T16:29:12.685-05:00 [APP/PROC/WEB/0] [ERR] ... 1 more
2017-01-16T16:29:12.686-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532)
2017-01-16T16:29:12.686-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:133)
2017-01-16T16:29:12.687-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
2017-01-16T16:29:12.688-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
2017-01-16T16:29:12.688-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
2017-01-16T16:29:12.688-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
2017-01-16T16:29:12.688-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191)
2017-01-16T16:29:12.688-05:00 [APP/PROC/WEB/0] [ERR] at bosch.cose.na.enterprise.CoseNaEnterpriseApplication.main(CoseNaEnterpriseApplication.java:19)
2017-01-16T16:29:12.688-05:00 [APP/PROC/WEB/0] [ERR] ... 6 more
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:76)
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:160)
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] at org.apache.catalina.startup.Tomcat.start(Tomcat.java:345)
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:168)
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:99)
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] ... 18 more
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:130)
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] ... 13 more
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:89)
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:457)
2017-01-16T16:29:12.689-05:00 [APP/PROC/WEB/0] [ERR] Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardServer[-1]]
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] ... 22 more
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Tomcat]]
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat]]
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] ... 20 more
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:924)
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] ... 24 more
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] Caused by: org.apache.catalina.LifecycleException: A child container failed during start
2017-01-16T16:29:12.690-05:00 [APP/PROC/WEB/0] [ERR] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
2017-01-16T16:29:12.788-05:00 [APP/PROC/WEB/0] [OUT] Exit status 0
2017-01-16T16:29:12.803-05:00 [CELL/0] [OUT] Exit status 0

如果有人知道原因,请告诉我。

如果启动应用程序需要很长时间,PCF 会立即显示 Crashed 状态?

【问题讨论】:

    标签: java spring-boot cloud-foundry embedded-tomcat-8


    【解决方案1】:

    默认情况下,tomcat 包含在 Spring Boot 中。您始终可以覆盖它。也就是说,一个简单的 Spring Boot 应用程序只需很少的时间即可启动。

    当你将 LRP(微服务)推送到 PCF 时,在容器创建完成并完成 staging 过程后,LRP 启动并进入运行状态的默认间隔是 60 秒。如果您的应用需要更多时间,您可以使用cf push 上的-t 选项覆盖这些设置。

    更恰当的问题应该是,为什么您的应用需要超过 60 秒才能启动?我建议您尝试在本地运行 Spring Boot 应用程序并找出启动所需的时间。如果您的应用程序耗时超过 60 秒,我建议您重新设计应用程序中的步骤。

    如果您正在加载任何数据,请按照12 factor 重新设计它。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      您可能遇到了 Tomcat 在启动时阻塞等待系统上的熵初始化 SecureRandom 的问题。有关完整说明,请参阅Tomcat wiki。要查看是否发生了这种情况,请尝试为您的应用配置熵源以使用非阻塞源:

      cf set-env &lt;app name&gt; JAVA_OPTS "-Djava.security.egd=file:///dev/urandom"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-05
        • 2017-10-04
        • 2020-10-24
        • 1970-01-01
        • 1970-01-01
        • 2018-06-22
        • 2018-06-09
        相关资源
        最近更新 更多