Heroku上的Spring Boot - H10“app crash”

时间:2016-11-21 00:56:46

标签: java spring heroku

我正在尝试向Heroku部署一个简单的SpringMVC REST API - 我在github上有示例代码。当我部署到Heroku时,该应用程序无法正常工作 - 这就是我在Heroku上的日志文件中看到的内容:

2016-11-21T00:28:28.965526+00:00 app[web.1]: at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) 2016-11-21T00:28:28.965587+00:00 app[web.1]: at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121) 2016-11-21T00:28:28.965642+00:00 app[web.1]: at org.springframework.boot.context.event.EventPublishingRunListener.started(EventPublishingRunListener.java:63) 2016-11-21T00:28:28.965701+00:00 app[web.1]: at org.springframework.boot.SpringApplicationRunListeners.started(SpringApplicationRunListeners.java:48) 2016-11-21T00:28:28.965762+00:00 app[web.1]: at org.springframework.boot.SpringApplication.run(SpringApplication.java:304) 2016-11-21T00:28:28.965804+00:00 app[web.1]: at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) 2016-11-21T00:28:28.965865+00:00 app[web.1]: at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) 2016-11-21T00:28:28.965926+00:00 app[web.1]: at com.jkerak.TodoApiApplication.main(TodoApiApplication.java:9) 2016-11-21T00:28:28.965989+00:00 app[web.1]: ... 8 more 2016-11-21T00:28:29.096742+00:00 heroku[web.1]: State changed from starting to crashed 2016-11-21T00:28:29.081552+00:00 heroku[web.1]: Process exited with status 1 2016-11-21T00:51:54.625237+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=jkerak-todoapi.herokuapp.com request_id=73c76e69-2084-436f-b829-dd533562d13a fwd="73.30.84.74" dyno= connect= service= status=503 bytes=

我在本地运行应用程序没有问题。

有没有地方可以访问有关Heroku出错的更多信息?我正在使用“Github部署”管道部署应用程序。

1 个答案:

答案 0 :(得分:1)

您发布的日志被截断(您可以通过运行heroku logs -n 2000 -a youapp获取更多日志)。但是使用Github上的代码,我发现了错误:

  

引起:java.lang.IllegalArgumentException:LoggerFactory不是Logback LoggerContext,但Logback在类路径上。删除Logback或竞争实现(从jar:file:/app/target/todoApi-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/slf4j-simple-1.7加载的org.slf4j.impl.SimpleLoggerFactory类。 21.jar!/)。如果您使用的是WebLogic,则需要添加' org.slf4j' to first-application-packages in WEB-INF / weblogic.xml class [org.slf4j.impl.SimpleLoggerFactory]的对象必须是ch.qos.logback.classic.LoggerContext类的实例

所以你的类路径有错误。我怀疑这不会发生在本地,因为类路径顺序是不确定的。

尝试从依赖项中删除slf4j-simple-1.7.21。你可以通过改变你的swagger-codegen依赖来实现这一点:

<dependency>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen</artifactId>
    <version>2.2.1</version>
    <exclusions>
    <exclusion>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-simple</artifactId>
    </exclusion>
  </exclusions>
</dependency>